2010-09-16 16 views
5

Próbuję wygenerować klienta usług sieciowych po zbudowaniu mojego projektu w locie. Obecnie robi to, ale umieszcza go w pakiecie o nazwie w oparciu o przestrzeń nazw WS .. pozwala więc założyć, że przestrzeń nazw to google.com, wygenerowane pliki byłoby com.google ..Czy można wygenerować kod klienta usług WWW do specjalnego pakietu przy użyciu apache cxf w 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> 

Chcę, aby wygenerować pliki do innego pakietu .. nazwijmy to comWS.gooleClient

Czy to możliwe, aby to zrobić?

Dzięki

Odpowiedz

8

Jest to możliwe przy użyciu niestandardowego wiążącej lub przepuszczanie -p dodatkowy argument, jak pokazano poniżej:

<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

Dziękuję bardzo! Próbowałem '-p com.something.else' zanim znalazłem tu odpowiedź, a to nie zadziałało. – stefanglase

1

Próbowałeś to dla extraarg?

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

Przykład:

<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

Jestem bardzo późno chociaż, ale ta specyfikacja pracował dla mnie

<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> 
Powiązane problemy