2010-05-22 2 views
17

Я пытаюсь использовать axis2 (1.5.1) версии для создания Java-кодов из файлов WSDL, но я не могу понять, что является правильным pom.xmlaxis2 пример 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> 

когда я типа МВН компиляции, он жалуется на

Retrieving document at 'src/main/resources/wsdl/stockquote.wsdl'. 
java.lang.ClassNotFoundException: org.apache.xml.serializer.TreeWalker 

И если я пытаюсь найти TreeWalker, это беспорядок, чтобы найти подходящую банку файлы.

Может ли кто-нибудь дать мне подсказки? или дать мне правильный pom.xml

[обновление] потребность Xalan-2.7.0.jar быть так же мере зависят, и файл банк сломан (в связи с проблемой связующей), ТНХ паскалем

+0

Я последовал шаги, описанные в приемщик ответ, но он не сделал Работа; Maven все еще жалуется на недостающий класс. Можете ли вы опубликовать полный ответ с рабочим POM? – Leonel

ответ

22

Это может быть не оптимальный, но следующий pom.xml, кажется, позволяет сгенерированный код, который будет скомпилирован:

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

Это pom.xml является результатом или проб и ошибок плюс некоторые прибегая к помощи, я не мог найти ни одного чиновника или неофициальный ресурс с рабочей установкой. Серьезно, почему, черт возьми, так сложно настроить проект Axis2? Еще одна причина, по которой мне не нравится Axis.

+0

благодарим за комментарии, и я использую новую папку. Ошибка все еще существует, так как зависимость xercesImpl-2.6.2 не имеет класса TreeWalker, в нее включена только более поздняя версия. И я перечисляю все версии зависимостей Maven ниже (от моего затмения) axis2-1.5.1.jar аксиома-апи-1.2.6.jar Джеронимо-activation_1.1_spec-1.0.jar Джеронимо-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.банк Джеронимо-StAX-api_1.0_spec-1.0.1.jar аксиома-осущ-1.2.6.jar wstx-ASL-3.2.4.jar Ось-wsdl4j-1.5.1.jar XMLBeans-2.3. 0.jar stax-api-1.0.1.jar –

+0

Хорошо, это зависит от xalan, и мой xalan-2.7.0 сломан снова. теперь проблема решена, тх. –

+0

Это привело меня к правильному пути, но мне пришлось обновить версии аксиом до 1.2.8, а также добавить зависимость от axiom-dom, чтобы получить ее компиляцию. Спасибо, что закончил утро разочарования! –

4

позаботятся о том, что конфигурация должна быть толкнул вверх (пример неправильно)

<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

Остерегайтесь! У меня была аналогичная проблема: вызов maven в соответствии с [docs] (http://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html): 'mvn -e axis2-wsdl2code: wsdl2code' не выбрал конфигурацию. Но конфиг правильно читается, если вы вызываете фазу maven вместо цели: 'mvn -e generate-sources'. Важно иметь возможность настраивать каждое исполнение независимо, если вам нужно генерировать источники для более чем одного wsdl. – Alberto

1

Это обновленная версия ПОМ предоставленной Pascal Thivent.

Основные модификации заключаются в том, что имена версий различны, а 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

Благодаря pom pascal я смог заставить его работать, выполняя это с использованием последних версий. Кроме того:

  • Мне пришлось добавить плагин build-helper-maven-plugin, чтобы мои классы-клиенты могли получить доступ к заглушкам прокси.
  • я удалил опцию package конфигурации
  • Я изменил мой outputDirectory

Вот мой ПОМ:

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

Смежные вопросы