2

私はSpringでjaxbで作業しており、WebServiceGatewaySupportを使用してカスタムの非整列化プロセスを作成しようとしています。

私のクラスは以下です。問題は、次のメソッドを呼び出すときの応答にあります

getWebServiceTemplate().sendSourceAndReceiveToResult

「java.lang.IllegalArgumentException: 'uri' must not be empty」というメッセージでクラッシュします。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 String または単純な xml 形式で値をエラーなしで取得したいと考えています。誰でも助けることができますか?

4

1 に答える 1

1

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;
        }
于 2012-08-28T15:19:07.167 に答える