0

Web サービス クライアント クラスを使用して結果を取得できますが、テキスト結果ではなく、JavaSE プログラムで完全な SOAP メッセージが必要です。どうやってやるの?何か案が?

4

2 に答える 2

2

はいあります。SOAP メッセージJAX-WS Dispatch
で作業するために 使用します。 免責事項の例: コードをコンパイルしようとさえしませんでした:Dispatch<Source>

    //xmlString has the xml message to send to the web service  
    StreamSource xmlMsg = new StreamSource(new StringReader(xmlString));   
    //Create URL of web service. Place your URL for WSDL
    URL wsdlURL = new URL("http://10.5.2.10:8080/path/service?wsdl");  
    QName serviceName = new QName("http://example.com",  "TrivialWebService");  
    Service s = Service.create(wsdlURL, serviceName);  
    QName portName = new QName("http://example.com", "TrivialWebServicePort");  
    //Service.Mode.MESSAGE works on SOAP msg (as opposed to Service.Mode.PAYLOAD)
    Dispatch<Source> dispatch = createDispatch(portName,  
                                                      Source.class,  
                                                      Service.Mode.MESSAGE);  
    //Send request
    Source reply = dispatch.invoke(xmlMsg);  
    DOMResult domResponse = new DOMResult();
    Transformer trans = TransformerFactory.newInstance().newTransformer();
    trans.transform(reply, domResponse); 
    //Now use DOM APIs

HTTP ペイロード (XML として) (SOAP エンベロープ) または SOAP ペイロード (応答) で作業するかどうかを指定することもできます。
生の XML を処理するコードを作成する必要があります (たとえば、DOM を使用します)。
JAX-WS または CXF を使用する場合は、この API を使用できます。
AXIS2 の場合、XML で作業することも可能です。特定の API だけになり
ます。もちろん、使用できる SAAJ もあります。

于 2011-07-03T07:40:04.157 に答える
0

SOAPメッセージ全体がHTTPリクエストオブジェクト(HttpServletRequest)に含まれます。これにより、ヘッダー、本文、その他すべてが提供されます。

于 2011-07-03T02:38:01.230 に答える