2015-09-07 66 views
0

我有一個wsdl,我想用Axis2(WSDL2Java)創建一個java存根客戶端。Axis生成存根缺失操作

由於生成在運行時由於系統本身的結構而提出的,我通過使用反射調用中的WSDL2Java:

Class<?> clzzOptionParser = classloader.loadClass("org.apache.axis2.util.CommandLineOptionParser"); 
      Class<?> clzzEngine = classloader.loadClass("org.apache.axis2.wsdl.codegen.CodeGenerationEngine"); 
      String[] args = new String[]{"-uri", wsdl.getAbsolutePath(), 
       "-o", myJavaCompilerComponent.getOutputPath().getAbsolutePath(), 
       "-p", packageName, 
       "-ap" 
       }; 

      Object optionParser = clzzOptionParser.getDeclaredConstructor(new Class<?>[]{String[].class}).newInstance(new Object[]{args}); 
      Object engine = clzzEngine.getDeclaredConstructor(new Class<?>[]{clzzOptionParser}).newInstance(optionParser); 

      clzzEngine.getMethod("generate").invoke(engine); 

我用「-ap」 - 參數告訴發電機包括所有porttypes。儘管生成的存根包含所有類型的內部類(包括請求和響應類),但僅生成第一種類型的方法(用於調用服務)。

如何啓用AXIS創建所有內容?我認爲-ap會做的伎倆,但它沒有奏效。

回答

0

它通過將WSDL文件分成多個文件進行工作,每個文件包括一個操作。