2015-09-07 69 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文件分成多个文件进行工作,每个文件包括一个操作。