Spring jaxb WebServiceGateway支持实现java.lang.IllegalArgumentException
我正在使用Spring在jaxb中工作,试图使用WebServiceGatewaySupport编写一个自定义解组过程 我的班级在下面。问题在于响应,当我调用以下方法时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
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;
}