尝试使用Spring MVC构建RESTful Web服务.
控制器应返回特定的Java类型,但响应主体必须是通用信封.如何才能做到这一点?
以下代码部分是我到目前为止所拥有的:
控制器方法:
@Controller
@RequestMapping(value = "/mycontroller")
public class MyController {
public ServiceDetails getServiceDetails() {
return new ServiceDetails("MyService");
}
}
Run Code Online (Sandbox Code Playgroud)
回复信封:
public class Response<T> {
private String message;
private T responseBody;
}
Run Code Online (Sandbox Code Playgroud)
ServiceDetails 码:
public class ServiceDetails {
private String serviceName;
public ServiceDetails(String serviceName) {
this.serviceName = serviceName;
}
}
Run Code Online (Sandbox Code Playgroud)
对客户的最终回应应显示为:
{
"message" : "Operation OK"
"responseBody" : {
"serviceName" : "MyService"
}
}
Run Code Online (Sandbox Code Playgroud) 我在 Java 8 中读取文件时遇到了一些奇怪的行为,我想知道是否有人能理解它。
\n\n设想:
\n\n读取格式错误的文本文件。我所说的格式错误是指它包含不映射到任何 unicode 代码点的字节。
\n\n我用来创建这样一个文件的代码如下:
\n\nbyte[] text = new byte[1];\nchar k = (char) -60;\ntext[0] = (byte) k;\nFileUtils.writeByteArrayToFile(new File("/tmp/malformed.log"), text);\nRun Code Online (Sandbox Code Playgroud)\n\n此代码生成一个仅包含一个字节的文件,该文件不是 ASCII 表(也不是扩展表)的一部分。
\n\n尝试cat此文件会产生以下输出:
\xef\xbf\xbd\nRun Code Online (Sandbox Code Playgroud)\n\n这是UNICODE 替换字符。这是有道理的,因为 UTF-8 需要 2 个字节才能解码非 ascii 字符,但我们只有一个字节。这也是我对 Java 代码的期望。
\n\n贴一些常用代码:
\n\nprivate void read(Reader reader) throws IOException {\n\n CharBuffer buffer = CharBuffer.allocate(8910);\n\n buffer.flip();\n\n // move existing data to the front of the buffer\n buffer.compact();\n\n // pull in as …Run Code Online (Sandbox Code Playgroud)