English 中文(简体)
如何用Wsdl2java创造两个单独的罐子?
原标题:How to create two separate jars with wsdl2java?

我对maven非常新。 我正使用 wsdl2java 来获取 Java 文件, 然后创建我需要的罐子文件。 问题在于我的骨骼来自不同的来源, 最终我需要4个不同的罐子文件。

到目前为止,我试图先创建前两个罐子文件,然后再处理下两个罐子文件... 所以我在“建设”区块中创建了两个不同的“执行”区块; 每个“执行”区块下载了每个Wsdl文件,到目前为止都很好。以下插件:

org.codehaus.mojo axistools-maven-plugin

这样工作 : 它首先汇编所有生成的 Java 文件, 然后从所有文件中生成 jar 文件, 这意味着它只创建一个 jar 文件 。

我要求Wsdl2java在每一个“ 执行” 区块之后编译并创建罐子文件吗? 我可以得到两个不同的罐子文件, 每一个文件只和我下载在“ 执行” 区块中的 Wsdl 文件有关?

以下是 pom. xml 。 在此点, 生成的 jar 文件由以下文件生成的 Java 文件组成: 文件 1, 文件 2, 文件 3, 文件 4 和 文件 5 。

我要从文件1、文件2、文件3和文件4和文件5取出一个罐子。

如有任何帮助,将不胜感激。

<build>
<plugins>    
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.4</version>        
    <dependencies>          
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.1</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1</version>
      </dependency>
    </dependencies>
    <executions>
      <execution>
      <id>prod</id>          
        <goals>
          <goal>wsdl2java</goal>
        </goals>
        <configuration>    

      <urls>
        <url>https://file1.svc?wsdl</url>
        <url>https://file2.svc?wsdl</url>
        <url>https://file3.svc?wsdl</url>                        
      </urls>

      <allElements>true</allElements>
      <wrapArrays>false</wrapArrays>
      <testCases>false</testCases>
      <serverSide>false</serverSide>
      <typeMappingVersion>1.2</typeMappingVersion>                      
    </configuration>
      </execution>

      <execution>
      <id>sandbox</id>
        <goals>
          <goal>wsdl2java</goal>
        </goals>
        <configuration>
        <sourceDirectory>${basedir}/wsdl</sourceDirectory>

    <useEmitter>true</useEmitter>        
<wsdlFiles>
    <wsdlFile>file4.wsdl</wsdlFile>
    <wsdlFile>file5.wsdl</wsdlFile>
</wsdlFiles>    

      <allElements>true</allElements>
      <wrapArrays>false</wrapArrays>
      <testCases>false</testCases>
      <serverSide>false</serverSide>
      <typeMappingVersion>1.2</typeMappingVersion>                             
    </configuration>
      </execution>          
    </executions>
</plugin>
</plugins>
</build>

由于时间太长,我不得不编辑我原来的文章...

感谢您的答复。 我确实尝试了您的解答 。 正如您所知, “ 轴工具- maven- plutin” 和“ maven- compliler- plutin” 中包含“ maven- jar- plutin ” 和“ maven- jar- plutin ” 。 它首先从指定的 urls 中下载所有 wsdl 文件。 它创建了不同的输出目录; 但是, 在编译阶段, 它试图同时在所有输出目录中编辑所有 Java 文件; 因为 Java 文件是常见的 。 这些 wsdl 文件在编译时会给出“ 复制类” 错误 。

我们可以定义我们自己的自定义“maven-compiler-plutin”和“maven-jar-plutin”区块, 并添加“include”或“exclude”区块, 让 Maven知道要编译的文件和如何创建罐子文件, 但是由于“ axistols-maven- plutin” 首先运行自己的“ maven-compiler-plutin”, 它试图先编译所有 Java 文件, 并且仍然在 < / strong> 之前给出“ 复制类” 错误 < strong> 。 它查看我们的“ maven-compiler- plutin” 和“ mave- gar- plutin” 区块 。

问题回答

一种想法 : 定义您轴工具插件的每个执行, 例如“ 类” 和“ 类 Sandbox ”, 定义 < code\ lt;output Directy> 。

然后使用多处执行 maven-jar-plugin 来从这些文件中构建罐。 每个 jar 插件执行将指定一个 < code@lt; classitary> 与轴工具执行 相对应的 。 您会想要定义 或更改 用于罐处决, 这样第二个罐不会覆盖第一个。

藉由在Wsdl2java的配置部分中添加nsExclus 。

<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<nsExcludes>
  <nsExclude>http://lang.java</nsExclude>
  <nsExclude>http://rmi.java</nsExclude>
</nsExcludes>
...




相关问题
Can t consume webservice from Java

I created the webservice stubs using axis2-1.5 s wsdl2java.bat. This created a src folder with the following structure in it: src/net/mycompany/www/services/SessionIntegrationStub.java The package ...

WSDL2Java tool error Apache CXF

We get the following error when we use WSDL2Java tool to generate stubs. The webservice is up and running. WSDLToJava Error: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsd l ...

Code generation from WSDL using XML Catalog

Is there any tool for generating Java code from WSDL using XML Catalogs? The problem is that I have wsdl files that import XML schemas which also import other schemas and the schemas are not available ...

Apache Axis WSDL2Java error - Missing <soap:fault> element

We are integrating a third party SOAP web services in our application. The WSDL is used with SOAPUI tool, where sample requests and responses worked fine. When we try to integrate with apache Axis 1....

Axis wsdl2java not generating all interfaces in stub

I am trying to generate stub using wsdl2java.bat, my wsdl consists of two bindings. I see that wsdl2bat creates interface for operations in the first binding but does not generate anything for ...