Java 泽西资源不产生产出
我有一个资源:Java 泽西资源不产生产出,java,xml,scala,jax-rs,jersey-2.0,Java,Xml,Scala,Jax Rs,Jersey 2.0,我有一个资源: @GET @Path("/{v1}") @Produces(Array(MediaType.APPLICATION_XML)) def asyncGet(@Suspended asyncResponse: AsyncResponse, @PathParam("v1") v1: Int): Unit = {...} 在其主体中,它使用Result对象(asyncResponse.resume(resultObject))异步响应,该对象声明为 @XmlRootEle
@GET
@Path("/{v1}")
@Produces(Array(MediaType.APPLICATION_XML))
def asyncGet(@Suspended asyncResponse: AsyncResponse, @PathParam("v1") v1: Int): Unit = {...}
在其主体中,它使用Result对象(asyncResponse.resume(resultObject)
)异步响应,该对象声明为
@XmlRootElement
case class Result(res: Double)
在我的pom中,我有下一个依赖项:
javax.ws.rs:javax.ws.rs-api:2.0
org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.13
这些是唯一与web或rest相关的依赖项。
当我对我的reource执行请求时,我得到内部服务器错误
响应(服务器端没有记录任何内容),但是在编组参数之前,资源的逻辑一切正常
我怀疑在选择封送拆收器的过程中出现了问题,因为当我将resource设置为使用对象的字符串表示进行响应时(通过toString
方法),它工作正常。问题出在
@XmlRootElement
case class Result(res: Double)
JAXB不需要arg构造函数就可以正常工作(在调试时,我得到一个异常,表明这一点,但rest客户端得到的异常与此问题无关)。所以这个类的正确版本是
@XmlRootElement
case class Result(res: Double) {
def this() = this(0)
}