Spring jaxb WebServiceGateway支持实现java.lang.IllegalArgumentException

Spring jaxb WebServiceGateway支持实现java.lang.IllegalArgumentException,spring,jaxb,webservicetemplate,Spring,Jaxb,Webservicetemplate,我正在使用Spring在jaxb中工作,试图使用WebServiceGatewaySupport编写一个自定义解组过程 我的班级在下面。问题在于响应,当我调用以下方法时 getWebServiceTemplate().sendSourceAndReceiveToResult 它会崩溃,并显示消息“java.lang.IllegalArgumentException:'uri'不能为空”。看起来,即使我使用的是StringResult,它也在尝试解析xml并发现一个xml/soap响应错误 pu

我正在使用Spring在jaxb中工作,试图使用WebServiceGatewaySupport编写一个自定义解组过程

我的班级在下面。问题在于响应,当我调用以下方法时

getWebServiceTemplate().sendSourceAndReceiveToResult
它会崩溃,并显示消息“java.lang.IllegalArgumentException:'uri'不能为空”。看起来,即使我使用的是StringResult,它也在尝试解析xml并发现一个xml/soap响应错误

public class WUResultGateway extends WebServiceGatewaySupport{

    private WebServiceTemplate webServiceTemplate;

    private SourceExtractor ratingResponseExtractor = new WUResponseExtractor();

    public WUResultGateway(WebServiceTemplate webServiceTemplate){
           this.webServiceTemplate =   webServiceTemplate;
    }
    private Source marshall( SendRDCResults results ) throws IOException{

        StringResult resp = new StringResult();
        Marshaller marshaller = webServiceTemplate.getMarshaller();
        marshaller.marshal( results, resp );

        return new ResourceSource( new ByteArrayResource( resp.toString().getBytes() ) );
    }

    public Object wuResponse( SendRDCResults results) throws IOException{
        //StringSource source = new StringSource();
        Result result = new StreamResult();
        StringResult strResult = new StringResult();
        boolean flag = getWebServiceTemplate().sendSourceAndReceiveToResult( marshall( results ), strResult );
        return result;
    }

}
在不对服务器的响应进行任何更改的情况下,我希望以s字符串或简单xml格式获取没有错误的值。有人能帮忙吗?

setDefaultUri(webServiceTemplate.getDefaultUri())

最后看起来如下

    public Object wuResponse( SendRDCResults results) throws IOException{
            //StringSource source = new StringSource();
            Result result = new StreamResult();
            StringResult strResult = new StringResult();
            setDefaultUri(webServiceTemplate.getDefaultUri());
            boolean flag = getWebServiceTemplate().sendSourceAndReceiveToResult( marshall( results ), strResult );
            return result;
        }