从Spring-WS中的getWebServiceTemplate()。marshalSendAndReceive()获取字节[]响应

问题描述 投票:0回答:1

在目标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"/>
java web-services soap spring-ws
1个回答
0
投票

[帮助我的同事上级。

在这种情况下,marshalSendAndReceive()实际上返回JAXBElement。因此:

© www.soinside.com 2019 - 2024. All rights reserved.