Content-Type
当我在 CXF (v2.6.3) 内进行自己的渲染时,我在设置时遇到问题@WebMethod
。
以下模式工作正常:
@Path("/foo")
@WebService
public class FooService {
@Path("/bar")
@Produces({ "text/plain" })
@GET
@WebMethod
public String bar() {
return "hi";
}
这将返回带有我所期望"hi"
的标头的 http-client 。Content-Type: Content-Type: text/plain
但是,当我尝试使用 response 进行自己的渲染时OutputStream
,"hi"
会正确返回,但@Produces
会忽略注释并返回默认的text/xml
内容类型。即使我打电话给setContentType(...)
自己也是如此。
@Path("/heartbeat2")
@Produces({ "text/plain" })
@WebMethod
@Get
public void heartbeat2() {
HttpServletResponse response = messageCtx.getHttpServletResponse();
response.getOutputStream().write("hi".getBytes());
// fails with or without this line
response.setContentType("text/plain");
}
这是输出:
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 2
Connection: keep-alive
Server: Jetty(8.1.9.v20130131)
hi
知道如何将自己的输出直接渲染到输出流并适当地设置内容类型吗?提前致谢。