2013-08-13 1 views
0

Я получаю следующее сообщение об ошибке:JAXBWrapperException: объект JAXB не имеет свойство XXXX XML

[8/13/13 12:36:14:261 CAT] 00000024 SystemOut  O /com/acme/integration/Verify  Error calling VerifyService 
    javax.xml.ws.WebServiceException: org.apache.axis2.jaxws.wrapper.impl.JAXBWrapperException: An internal assertion error occurred. The com.acme.services.VerifyFault JAXB object does not have a VerifyResult xml property. 
    at org.apache.axis2.jaxws.wrapper.impl.JAXBWrapperToolImpl.unWrap(JAXBWrapperToolImpl.java:84) 
    at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller.demarshalResponse(DocLitWrappedMethodMarshaller.java:144) 
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:440) 
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:351) 
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:159) 
    at $Proxy46.verify(Unknown Source) 

A (вырублены) экстракт из WSDL:

 <xsd:element name="verify"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element minOccurs="1" name="Type" type="xsd:int" /> 
        <xsd:element minOccurs="1" name="Number" nillable="true" type="xsd:string" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     <xsd:element name="verifyResponse"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element minOccurs="0" name="VerifyResult" type="xsd:int" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     <xsd:element name="verify_fault"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element minOccurs="0" name="Code" nillable="true" type="xsd:string" /> 
        <xsd:element minOccurs="0" name="Message" nillable="true" type="xsd:string" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 

Ответ я получаю от услуг (в SoapUI), что приводит к ошибке:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
     <NS1:verify_fault xmlns:NS1="http://www.acme.com"> 
     <Code>RecordNotFound</Code> 
     <Message>No Records Found.</Message> 
     </NS1:verify_fault> 
    </soapenv:Body> 
</soapenv:Envelope> 

Любая помощь в понимании того, почему я получаю JAXBWrapperException, когда, логически, не должно быть узла VerifyResult в ответе будет оценено.

Я попытался переименовать различные элементы, используя файл привязок, поскольку я полагал, что ошибка связана с проблемой, зарегистрированной here, но это оказалось не связанным.

ответ

1

Выключен ответ «ошибка» был неверным. В нем отсутствовал элемент <soapEnv:Fault>.

Следующий ответ теперь возвращает правильное «исключение».

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
     <soapenv:Fault> 
     <faultcode>soapenv:Server</faultcode> 
     <faultstring>SOAP Fault Recieved from server.</faultstring> 
     <detail> 
      <NS1:verify_fault xmlns:NS1="https://www.acme.com"> 
       <Code>RecordNotFound</Code> 
       <Message>No Records Found.</Message> 
      </NS1:verifyCustomer_fault> 
     </detail> 
     </soapenv:Fault> 
    </soapenv:Body> 
</soapenv:Envelope> 
Смежные вопросы