2010-09-16 34 views
5

J'essaie de générer le client webservices une fois que je construis mon projet à la volée. Il le fait actuellement mais le place dans un paquet nommé basé sur l'espace de noms du WS .. donc supposons que l'espace de nom est google.com, les fichiers générés seraient com.google ..Est-il possible de générer du code client webservices dans un paquet spécial en utilisant apache cxf dans maven?

<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> 

Je veux générer les fichiers à un package différent .. permet l'appeler comWS.gooleClient

est-il possible de le faire?

Merci

Répondre

8

Il est possible à l'aide d'une liaison personnalisée ou passer le -p argument supplémentaire comme indiqué ci-dessous:

<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> 
+0

Merci beaucoup! J'ai essayé ' -p com.something.else' avant de trouver votre réponse ici et cela n'a pas fonctionné. – stefanglase

1

Avez-vous essayé cela pour extraarg?

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

Exemple:

<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> 
6

Je suis très tard cependant, mais cette spécification a fonctionné pour moi

<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>