【问题标题】:Is it possible to generate webservices client code to a special package using apache cxf in maven?是否可以在 Maven 中使用 apache cxf 为特殊包生成 web 服务客户端代码?
【发布时间】:2011-04-13 11:01:17
【问题描述】:

我正在尝试在动态构建项目后生成 web 服务客户端。它目前这样做,但将它放在基于 WS 命名空间命名的包中。所以假设命名空间是 google.com ,生成的文件将在 com.google ..

<plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.2.10</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${basedir}/src/main/java/</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

我想将文件生成到不同的包中。我们称之为 comWS.gooleClient

有可能吗?

谢谢

【问题讨论】:

    标签: java maven-2 jax-ws cxf wsdl2java


    【解决方案1】:

    虽然我很晚了,但是这个规范对我有用

    <plugin>
         <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-codegen-plugin</artifactId>
     <version>2.7.7</version>
     <executions>
        <execution>
        <id>generate-sources</id>
        <phase>generate-sources</phase>
        <configuration>
             <sourceRoot>${basedir}/src/main/java</sourceRoot>
             <wsdlOptions>
                   <wsdlOption>
                  <wsdl>wsdl-location</wsdl>
              <extraargs>
                <extraarg>-client</extraarg>
                  </extraargs>
            <packagenames> 
                    <packagename>desired location</packagename> 
            </packagenames> 
                   </wsdlOption>
                </wsdlOptions>                    
           </configuration>
           <goals>
            <goal>wsdl2java</goal>
         </goals>
       </execution>
    </executions>
    </plugin>
    

    【讨论】:

      【解决方案2】:

      您是否尝试过这个extraarg?

      <extraarg><!--namespace-->=<!-- new package name--></extraarg>
      

      例子:

      <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-codegen-plugin</artifactId>
        <version>2.2.10</version>
        <executions>
          <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
              <sourceRoot>${basedir}/src/main/java/</sourceRoot>
              <wsdlOptions>
                <wsdlOption>
                  <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl>
                  <extraargs>
                      <extraarg>-p</extraarg>
                      <extraarg>http://google.com=comWS.gooleClient</extraarg>
                  </extraargs>
                </wsdlOption>
              </wsdlOptions>
            </configuration>
            <goals>
              <goal>wsdl2java</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      

      【讨论】:

        【解决方案3】:

        可以使用自定义绑定或传递-p 额外参数,如下所示:

        <plugin>
          <groupId>org.apache.cxf</groupId>
          <artifactId>cxf-codegen-plugin</artifactId>
          <version>2.2.10</version>
          <executions>
            <execution>
              <id>generate-sources</id>
              <phase>generate-sources</phase>
              <configuration>
                <sourceRoot>${basedir}/src/main/java/</sourceRoot>
                <wsdlOptions>
                  <wsdlOption>
                    <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl>
                    <extraargs>
                      <extraarg>-p</extraarg>
                      <extraarg>com.something.else</extraarg>
                    </extraargs>
                  </wsdlOption>
                </wsdlOptions>
              </configuration>
              <goals>
                <goal>wsdl2java</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        

        【讨论】:

        • 非常感谢!在找到您的答案之前,我尝试了&lt;extraarg&gt;-p com.something.else&lt;/extraarg&gt;,但这没有用。
        猜你喜欢
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-17
        • 2011-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多