2011-09-01 54 views
1

wsdl_URLと操作名をパラメータとして渡してsoap request xmlファイルを生成するJava opensource apiを探しています。実際にはsoapUIがこれをやっているので、soapUIソースコードを調べようとしましたが、私の仕事を完了するためにコード全体を理解することができません。Javaのwsdlファイルからsoap request xmlを生成するには

これを行うためのJava APIがありますか(Apacheなど)?

ネットで数日を過ごしましたが、何の結果も見ませんでした。

体があれば私に助けてください。

ありがとうございます。

答えて

2

あなたは、WSDLで定義された各操作のためのXMLSを生成するためのオープンソースのメンブレンSOAライブラリ(http://www.membrane-soa.org/soa-model-doc/1.4/java-api/parse-wsdl-java-api.htm)を使用することができAXIS

http://axis.apache.org/axis2/java/core/

+0

こんにちはベンジャミン、お返事ありがとうございます。私はsoapUIのようなリクエストXMLファイルを作成するための有用なJava APIを見つけられませんでした。彼らはServiceClientクラスについて話していましたが、私はそのクラスを使用する方法を理解していません。 – srini

+0

私はsoapとjavaでどのように作業するのか一般的な方法は、あなたのwsdlからオブジェクトモデルを生成し、それに対して作業することです。ようにhttp://ws.apache.org/axis/java/user-guide.html#WSDL2JavaBuildingStubsSkeletonsAndDataTypesFromWSDL –

3

を見てください:

public void createTemplates(String url){ 

    WSDLParser parser = new WSDLParser(); 
    Definitions wsdl = parser.parse(url); 
    StringWriter writer = new StringWriter(); 
    SOARequestCreator creator = new SOARequestCreator(); 
    creator.setBuilder(new MarkupBuilder(writer)); 
    creator.setDefinitions(wsdl); 

    for (Service service : wsdl.getServices()) { 
     for (Port port : service.getPorts()) { 
      Binding binding = port.getBinding(); 
      PortType portType = binding.getPortType(); 
      for (Operation op : portType.getOperations()) { 
       creator.setCreator(new RequestTemplateCreator()); 
       creator.createRequest(port.getName(), op.getName(), binding.getName()); 
       System.out.println(writer); 
       writer.getBuffer().setLength(0); 
     } 
    } 
} 
2

ソープをまた、UIは、WSDLから要求および応答XMLを作成するためにJava Apiを提供します。

public static void main(String[] args) throws Exception { 
     WsdlProject project = new WsdlProject(); 
     WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://localhost:8080/Service?wsdl"); 
     WsdlInterface wsdl = wsdls[0]; 
     for (Operation operation : wsdl.getOperationList()) { 
      WsdlOperation wsdlOperation = (WsdlOperation) operation; 
      System.out.println("Request:\n"+wsdlOperation.createRequest(true)); 
      System.out.println("\nResponse:\n"+wsdlOperation.createResponse(true)); 

     } 
    } 

Developer's corner soap UIには、Soap UI Apiと統合するための素晴らしいポインタがあります。

関連する問題