2012-04-09 9 views
7

Я пытаюсь использовать wsimport для создания классов из WSDL.Wsimport не работает во время сборки Maven

Я использую POP Maven, порожденную Netbeans (7.1), но я получаю следующий результат, когда я пытаюсь построить его:

[jaxws:wsimport] 
Processing: C:\Users\...\src\wsdl\ShipService_v5.wsdl 
jaxws:wsimport args: [-s, C:\Users\...\target\generated-sources\jaxws-wsimport, -d, C:\Users\...\target\classes, -verbose, -catalog, C:\Users\...\src\jax-ws-catalog.xml, -wsdllocation, file:/C:/Users/.../Desktop/ShipService_v5.wsdl, -extension, -Xnocompile, C:\Users\...\src\wsdl\ShipService_v5.wsdl] 
parsing WSDL... 

------------------------------------------------------------------------ 
BUILD FAILURE 
------------------------------------------------------------------------ 
Total time: 1.361s 
Finished at: Mon Apr 09 12:51:52 BST 2012 
Final Memory: 4M/120M 
------------------------------------------------------------------------ 
Failed to execute goal org.codehaus.mojo:jaxws-maven-plugin:1.10:wsimport (wsimport-generate-ShipService_v5) on project RPDataStreams: Error executing: wsimport [-s, C:\Users\...\target\generated-sources\jaxws-wsimport, -d, C:\Users\...\target\classes, -verbose, -catalog, C:\Users\...\src\jax-ws-catalog.xml, -wsdllocation, file:/C:/Users/.../Desktop/ShipService_v5.wsdl, -extension, -Xnocompile, C:\Users\...\src\wsdl\ShipService_v5.wsdl] -> [Help 1] 

Раздел Plugin от моего POM является:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxws-maven-plugin</artifactId> 
    <version>1.10</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>wsimport</goal> 
      </goals> 
      <configuration> 
       <wsdlFiles> 
        <wsdlFile>ShipService_v5.wsdl</wsdlFile> 
       </wsdlFiles> 
       <wsdlLocation>file:/C:/Users/.../Desktop/ShipService_v5.wsdl</wsdlLocation> 
       <staleFile>${project.build.directory}/jaxws/stale/ShipService_v5.stale</staleFile> 
      </configuration> 
      <id>wsimport-generate-ShipService_v5</id> 
      <phase>generate-sources</phase> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>javax.xml</groupId> 
      <artifactId>webservices-api</artifactId> 
      <version>1.4</version> 
     </dependency> 
    </dependencies> 
    <configuration> 
     <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir> 
     <xnocompile>true</xnocompile> 
     <verbose>true</verbose> 
     <extension>true</extension> 
     <catalog>${basedir}/src/jax-ws-catalog.xml</catalog> 
    </configuration> 
</plugin> 

Я знаю, что нет ничего плохого в WSDL, который я использую, я также пробовал его с WSDL от http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl.

Я попытался построить этот проект из Netbeans и в командной строке с сервера Ubuntu, оба раза получаю тот же результат.

Я теперь сузил это до зависимости от jconfig. Если я прокомментирую блок ниже, то источники веб-службы будут успешно сгенерированы.

<dependency> 
     <groupId>org.jconfig</groupId> 
     <artifactId>jconfig</artifactId> 
     <version>2.9</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>jmxri</artifactId> 
       <groupId>com.sun.jmx</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Спасибо за помощь.

+0

запустить maven с -X - надеюсь, вы получите больше информации из плагина jaxws. – tdrury

+0

Три точки в 'C:/Users /.../ src /' выглядят неправильно или это что-то вроде новых функций окна? –

+0

... просто нужно вычеркнуть полный путь. Работа с -X не дает никакой полезной информации. Я удалил зависимость jconfig и заменил его конфигурацией Commons (которая, как мне кажется, все равно лучше), и проект теперь строит. – jebbench

ответ

6

Вы должны использовать:

<groupId>org.jvnet.jax-ws-commons</groupId> 
<artifactId>jaxws-maven-plugin</artifactId> 
<version>2.2</version> 

который является последней версии (обратите внимание, что плагин был перемещен в org.jvnet.jax-WS-Общин)

Edit:

Вы могли бы попробуйте выборочно исключить зависимости jconfig. Полный список выглядит так:

<dependency> 
    <groupId>org.jconfig</groupId> 
    <artifactId>jconfig</artifactId> 
    <version>2.9</version> 
    <exclusions> 
     <exclusion> 
      <groupId>com.sun.jmx</groupId> 
      <artifactId>jmxri</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>javax.xml.parsers</groupId> 
      <artifactId>jaxp-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>crimson</groupId> 
      <artifactId>crimson</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Редактировать: вам действительно нужен jconfig? Если нет, просто избавитесь от него.

+0

Я обновил свой POM, как было предложено, но получаю тот же результат, что и ранее. Удаление зависимости JConfig позволит проекту строить. – jebbench

+1

Увеличение версии jaxws-maven-plugin до 2.2 разрешило ту же проблему для меня - спасибо. – s1mm0t

0

На вкладке JRE конфигурации выполнения вашего проекта, выберите альтернативный JRE и добавьте путь к установленной JDK. Для меня это решило проблему.

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