и пытался потреблять веб -сервис на WebSphere 9.0.5.13 < /strong> < /p>
- Классер приложений установлен на родительский
Код: Выделить всё
Djavax.xml.bind.JAXBContext=com.sun.xml.internal.bind.v2.ContextFactory
Код: Выделить всё
[javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.mycompany.com", local:"MyOCRFileRequestRs"). Expected elements are (none)]
< /code>
Мой код следующим образом: < /p>
private MyOCRFileRequestRsType callMyOCRService(MyOCRFileRequestRqType MyOCRRequest) throws Exception {
String headerValue = "Bearer "+MyTokenClient.getToken();
MyOCRFileRequest port= esbOcrSerice.getMyOCRFileRequestSOAP11();
Map requestContext = ((BindingProvider) port).getRequestContext();
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,ConfigManager.getMyOCRRequestUrl().split("[?]")[0]);
requestContext.put("javax.xml.ws.http.request.headers",
Collections.singletonMap("Authorization", Collections.singletonList(headerValue)));
try {
return port.MyOCRFileRequest(MyOCRRequest);
} catch (Exception e) {
throw e;
}
}
< /code>
Первый вызов работает нормально без проблем, но все последующие вызовы не выполняются со следующей ошибкой: < /p>
[javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.mycompany.com", local:"MyOCRFileRequestRs"). Expected elements are (none)]
< /code>
interface myucrfilerequest: < /p>
@WebService(name = "MyOCRFileRequest", targetNamespace = "http://www.mycompany.com")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
ObjectFactory.class
})
public interface MyOCRFileRequest {
/**
*
* @param MyOCRFileRequestRq
* @return
* returns com.mycompany.idrak.MyOCRFileRequestRsType
*/
@WebMethod(operationName = "MyOCRFileRequest", action = "MyOCRFileRequest")
@WebResult(name = "MyOCRFileRequestRs", targetNamespace = "http://www.mycompany.com", partName = "MyOCRFileRequestRs")
public MyOCRFileRequestRsType MyOCRFileRequest(
@WebParam(name = "MyOCRFileRequestRq", targetNamespace = "http://www.mycompany.com", partName = "MyOCRFileRequestRq")
MyOCRFileRequestRqType MyOCRFileRequestRq);
}
< /code>
myucrfilerequestrstype: < /p>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MyOCRFileRequestRs_Type", propOrder = {
"msgRsHdr",
"body"
})
public class MyOCRFileRequestRsType {
@XmlElement(name = "MsgRsHdr", required = true)
protected MsgRsHdrType msgRsHdr;
@XmlElement(name = "Body")
protected MyOCRFileRequestRsBodyType body;
public MsgRsHdrType getMsgRsHdr() {
return msgRsHdr;
}
public void setMsgRsHdr(MsgRsHdrType value) {
this.msgRsHdr = value;
}
public MyOCRFileRequestRsBodyType getBody() {
return body;
}
public void setBody(MyOCRFileRequestRsBodyType value) {
this.body = value;
}
}
Я попытался использовать пользовательское свойство JVM, и проблема все еще существует
Код: Выделить всё
com.ibm.xml.xlxp.jaxb.opti.level=0
Подробнее здесь: https://stackoverflow.com/questions/795 ... ements-are