在目标WebService中,响应仅为xs:base64binary
,JAXB不会生成响应类型。在我的调用中:
public Object signMessage(SigningRequestType request) {
JAXBElement<SigningRequestType> jAXBElement = new ObjectFactory().createSigningRequestType(request);
return getWebServiceTemplate().marshalSendAndReceive(jAXBElement,
new SoapActionCallback(SIGN_METHOD_ACTION));
}
返回Object
,我不能简单地转换为byte[]
或对其进行序列化。如何从响应中提取byteArray结果?
UDP:添加更多信息。
ObjectFactory()
方法:
@XmlElementDecl(namespace = "http://www.roskazna.ru/eb/sign/types/sgv", name = "SigningResponseType")
public JAXBElement<byte[]> createSigningResponseType(byte[] value) {
return new JAXBElement<byte[]>(_SigningResponseType_QNAME, byte[].class, null, ((byte[]) value));
}
XSD:
<xs:element name="SigningResponseType" type="cst:notEmptyB64Binary"/>
[帮助我的同事上级。
在这种情况下,marshalSendAndReceive()
实际上返回JAXBElement
。因此: