1

wsdlリクエストとレスポンスのドキュメントを取得して生成するモジュールを開発しています。このために私はsoapuiこのコードで言及されているようにライブラリを使用しています投稿

package com.bbog.soap;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlImporter;
import com.eviware.soapui.model.iface.Operation;

public class WsdlAnalyzer {

public static void main(String[] args) throws Exception {
    WsdlProject project = new WsdlProject();
    WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:7000/Solicitud?wsdl");
    WsdlInterface wsdl = wsdls[0];
    for (Operation operation : wsdl.getOperationList()) {
        WsdlOperation op = (WsdlOperation) operation;
        System.out.println("OP:"+op.getName());
        System.out.println(op.createRequest(true));
        System.out.println("Response:");
        System.out.println(op.createResponse(true));
    }
}
}

したがって、これを使用してsoapの要求と応答を生成すると、forループが外れていても、何かがバックグラウンドで実行されています(NetBeansで確認できます)。そのsoapUIライブラリをカスタマイズして、適切なメソッドを呼び出して要求と応答を生成し、作成/初期化されたリソースを解放するのを手伝ってください。

4

1 に答える 1

1

これが私がリクエストとレスポンスを処理する方法です

   WsdlOperation wsdlOperation = (WsdlOperation) operation;
   // create a new empty request for that operation
   WsdlRequest request = wsdlOperation.addNewRequest("My request");
   request.setTimeout("2000");                  
   requestContent = wsdlOperation.createRequest(true);
   request.setRequestContent(requestContent);
   System.out.println("REQUEST: " + requestContent);
   // submit the request
   try {
        WsdlSubmit submit = (WsdlSubmit) request.submit(new WsdlSubmitContext(request), false);
        Status status = submit.getStatus(); //FINISHED OR ERROR
        System.out.println("STATUS: " + status); 
        Response response = submit.getResponse();
        System.out.println("RESPONSE: " + response.getContentAsString());
     } catch (SubmitException ex) {
    //Catch the exception
     }

それが役に立てば幸い

于 2013-02-11T14:49:44.417 に答える