Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在获取解组FailureException预期元素(无)_Java_Spring_Jaxb_Spring Ws - Fatal编程技术网

Java 正在获取解组FailureException预期元素(无)

Java 正在获取解组FailureException预期元素(无),java,spring,jaxb,spring-ws,Java,Spring,Jaxb,Spring Ws,下面是我用来调用服务的代码: TaskRequest myrequest = objectFactory.createTaskRequest(); myrequest.setId("12"); JAXBElement jElem = new JAXBElement( new QName("http://service.domain.com/", "taskResponse"), TaskRequest.class,

下面是我用来调用服务的代码:

TaskRequest myrequest = objectFactory.createTaskRequest();
myrequest.setId("12");
JAXBElement jElem = new JAXBElement(
                    new QName("http://service.domain.com/", "taskResponse"),
                    TaskRequest.class, myrequest);

TaskResponse o = (TaskResponse) webServiceTemplate.marshalSendAndReceive(jElem);
我得到一个例外:

org.springframework.oxm.UnmarshallingFailureException:JAXB 解组异常;嵌套异常是 javax.xml.bind.UnmarshaleException:意外元素 (uri:,本地:“任务响应”)。 预期的元素(无)在 org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:794)

TaskResponse具有以下注释:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TaskResponse", namespace = "http://message.domain.com/", propOrder = {
    "id",
    "name"
})
public class TaskResponse {...}
这是我的WebServiceTemplate配置:

WebServiceTemplate serviceTemplate = new WebServiceTemplate();    
serviceTemplate.setDefaultUri("http://mydomain.com/TaskWebService/taskServ");
serviceTemplate.setMessageFactory(saajSoapMessageFactory());
serviceTemplate.setMessageSender(httpMessageSender());
serviceTemplate.setMarshaller(marshaller());
serviceTemplate.setUnmarshaller(marshaller());
这是我的元帅:

   @Bean
    public Jaxb2Marshaller marshaller() {
        final Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();

        jaxb2Marshaller.setContextPath("com.domain.message");
        return jaxb2Marshaller;
    }
这可能是什么原因


我正在进行契约优先开发。

似乎您的
任务响应
类没有
@XmlRootElement
注释,因此编组错误。但是,根据错误跟踪,来自web服务的响应似乎是空响应(不是TaskResponse)。你能和SoapUI核实一下实际的反应是什么吗