2010-05-22 4 views
17

próbuję użyć oś2 (1.5.1) wersji do generowania kodów Java z plików WSDL, ale nie mogę dowiedzieć się, jaka jest poprawna pom.xmloś2 przykład Maven

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
      <version>1.5.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsdl2code</goal> 
        </goals> 
        <configuration> 
         <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
         <databindingName>xmlbeans</databindingName> 
         <packageName>a.bc</packageName> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
</dependencies> 

kiedy wpisać mvn A jeśli spróbuję znaleźć TreeWalker, znalezienie odpowiednich plików JAR jest kłopotliwe.

Czy ktoś może mi dać wskazówki? lub dać mi poprawną pom.xml

[aktualizacja] potrzeby Xalan-2.7.0.jar być depedent, jak również, a plik jar jest uszkodzony (z powodu problemu nexus), thx Pascal

+0

Śledziłem czynności opisane w odpowiedzi akceptora, ale tak się nie stało praca; Maven wciąż narzeka na brakującą klasę. Czy możesz przesłać kompletną odpowiedź za pomocą działającego POM? – Leonel

Odpowiedz

22

To nie może optymalna ale następujący pom.xml zdaje się dopuszczać wygenerowany kod zostać skompilowany:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>Q2888422</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>axis</groupId> 
     <artifactId>axis-wsdl4j</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.3.0</version> 
    </dependency> 
    ... 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.5.1</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <configuration> 
       <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
       <databindingName>xmlbeans</databindingName> 
       <packageName>a.bc</packageName> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Ten pom.xml jest wynikiem błędu lub spróbować plus kilka googling, nie mogłem znaleźć ani jednego oficjalnych bądź nieoficjalnych zasób z ustawieniem roboczym. Poważnie, dlaczego, do diabła, tak ciężko jest ustawić projekt Axis2? Jeszcze jeden powód, dla którego nie lubię Axis.

+0

dzięki za komentarze, a ja używam nowego dep. Błąd nadal istnieje, ponieważ zależność xercesImpl-2.6.2 nie ma klasy TreeWalker, tylko ta nowsza wersja zawiera tę. I listę wszystkich wersji zależnościami Maven poniżej (z mojego zaćmienia) axis2-1.5.1.jar aksjomat-api-1.2.6.jar geronimo-activation_1.1_spec-1.0.jar geronimo-javamail_1.4_spec -1.2.jar commons-logging-1.1.1.jar jaxen-1.1.1.jar xml-apis-1.3.04.jar xercesImpl-2.6.2.jar geronimo-Stax-api_1.0_spec-1.0.1.jar aksjomat-impl-1.2.6.jar wstx-ASL-3.2.4.jar osi wsdl4j-1.5.1.jar XMLBeans-2,3. 0.jar stax-api-1.0.1.jar –

+0

Ok, potrzebuje to zależeć od xalana, a mój xalan-2.7.0 jest zepsuty ponownie. teraz problem został rozwiązany, thx. –

+0

To doprowadziło mnie do właściwej drogi, ale musiałem zaktualizować wersje aksjomatów do wersji 1.2.8 i dodać zależność od aksjomatu-dom, aby uzyskać kompilację. Dzięki za zakończenie poranku frustracji! –

4

uważać, aby config musi zostać przesunięta w górę (przykładem jest źle)

<plugins> 
    <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.5.1</version> 
       <configuration> 
        <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
        <databindingName>xmlbeans</databindingName> 
        <packageName>a.bc</packageName> 
       </configuration> 
     <executions> 
      <execution> 
       <goals> 
        <goal>wsdl2code</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 
+2

Uwaga! Miałem podobny problem: wywoływanie maven'a zgodnie z [docs] (http://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html): 'mvn -e axis2-wsdl2code: wsdl2code' nie wybrał konfiguracji. Ale konfiguracja jest poprawnie odczytana, jeśli wywołasz fazę maven zamiast celu: 'mvn -e generate-sources'. Ważne jest, aby móc konfigurować każde wykonanie niezależnie, jeśli potrzebujesz generować źródła dla więcej niż jednego pliku wsdl. – Alberto

1

Jest to zaktualizowana wersja pom dostarczonych przez Pascala Thivent.

Główne zmiany polegają na tym, że nazwy wersji są różne i konieczne jest użycie neethi.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>my-wsdl2code-example</artifactId> 
    <version>1.0</version> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.axis2</groupId> 
       <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
       <version>1.6.1</version> 
       <executions> 
        <execution> 
         <id>execution_id</id> 
         <goals> 
          <goal>wsdl2code</goal> 
         </goals> 
         <configuration> 
          <packageName>com.example.wsdl</packageName> 
          <wsdlFile>src/main/wsdl/web-service.wsdl</wsdlFile> 
          <databindingName>xmlbeans</databindingName> 
         </configuration> 
        </execution> 
       </executions> 

       <dependencies> 

        <dependency> 
         <groupId>org.apache.xmlbeans</groupId> 
         <artifactId>xmlbeans</artifactId> 
         <version>2.6.0</version> 
        </dependency> 

       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 

     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>axis</groupId> 
      <artifactId>axis-wsdl4j</artifactId> 
      <version>1.5.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.neethi</groupId> 
      <artifactId>neethi</artifactId> 
      <version>3.0.2</version> 
     </dependency> 


     <dependency> 
      <groupId>org.apache.ws.commons.axiom</groupId> 
      <artifactId>axiom-impl</artifactId> 
      <version>1.2.14</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.6.0</version> 
     </dependency> 

    </dependencies> 

</project> 
2

Dzięki pomsowi Pascala udało mi się sprawić, że działał, robiąc to z najnowszymi wersjami. Ponadto:

  • Musiałem dodać wtyczkę build-helper-maven-plugin, aby moje klasy klientów miały dostęp do pośredników proxy.
  • usunąłem opcję package config
  • zmieniłem outputDirectory

Oto mój pom:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.yourcompany</groupId> 
<artifactId>axis2-server-proxy</artifactId> 
<version>1.0.0</version> 
<packaging>jar</packaging> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.6.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.15</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.15</version> 
    </dependency> 
    <dependency> 
     <groupId>axis</groupId> 
     <artifactId>axis-wsdl4j</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.6.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
      <version>1.6.3</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsdl2code</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources/</outputDirectory> 
         <wsdlFile>src/main/wsdl/services_visa_com_realtime_realtimeservice_v6_PublicV2.wsdl</wsdlFile> 
         <databindingName>xmlbeans</databindingName> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>add-source</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>${project.build.directory}/generated-sources/</source> 
         </sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Powiązane problemy