Java jersey webservices中使用JAXB的xml语法无效

Java jersey webservices中使用JAXB的xml语法无效,java,xml,web-services,rest,jaxb,Java,Xml,Web Services,Rest,Jaxb,我正在使用jersey web服务,它将POST请求作为xml使用,并将响应作为xml生成。 我正在使用JAXB将xml封送/解组到JavaBean中。这里的“TestCall”是一个存储请求中指定的所有属性的类,但如果请求中的XML格式不正确(即缺少结束标记),我需要在响应XML中返回错误代码。那么如何处理这些情况呢 这是我的密码: @POST @Consumes(MediaType.APPLICATION_XML) @Produces(MediaType.APPLICATION_XML)

我正在使用jersey web服务,它将POST请求作为xml使用,并将响应作为xml生成。 我正在使用JAXB将xml封送/解组到JavaBean中。这里的“TestCall”是一个存储请求中指定的所有属性的类,但如果请求中的XML格式不正确(即缺少结束标记),我需要在响应XML中返回错误代码。那么如何处理这些情况呢

这是我的密码:

@POST 
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
@Path("/testCall")
@Override
public TestCallOutput postCall(TestCall testCall) 
    return myService.acceptCallData(testCall);
}
我使用以下两个类封送xml:

import javax.xml.bind.annotation.XmlRegistry;
@XmlRegistry
public class ObjectFactory {


/**
 * Create a new ObjectFactory that can be used to create new instances of schema 
 * 
 */
public ObjectFactory() {
}

/**
 * Create an instance of {@link TestCall }
 * 
 */
public Ivrcall createTestcall() {
    return new Testcall();
}
}

我需要返回xml格式的响应,如下所示:

错误
0001
无效的XML文档

堆栈应通过向客户端返回500个错误来为您处理此问题。你不需要做任何工作


编辑:如果您坚持要实现这一点(如果我是您,我会推回,除非您需要符合现有接口),您应该添加JAX-WS处理程序(
javax.xml.WS.handler.handler
)并重写
handleFault
,以检查JAX-WS在无法解组传入消息时引发的特定异常。然后在处理程序中创建响应XML。

显示用于解组可能具有无效XML语法的XML的代码。我已在实际查询中提供了代码。我需要像这样返回响应-错误0001无效XML文档也在寻找答案。客户端将收到的不是500个错误代码,而是400个错误请求
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {

})
@XmlRootElement(name = "testcall")
public class TestCall {

/** The method. */
@XmlElement(required = true)
protected String method;

/** The dateref. */
@XmlElement(required = true)
protected String dateref;

/** The timeref. */
@XmlElement(required = true)
protected String timeref;

/** Getters and Setters of elements 
... */
}