2012-04-09 12 views
7

Sto tentando di utilizzare wsimport per generare classi da un WSDL.Wsimport non riesce durante la creazione di Maven

sto usando il POP Maven generato da Netbeans (7.1) ma ottengo il seguente output quando si tenta di costruirlo:

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

la sezione dei plugin dal mio 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> 

So che non c'è niente di sbagliato con il WSDL che sto usando, l'ho provato anche con il WSDL dal http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl.

Ho provato a creare questo progetto da Netbeans e sulla riga di comando da un server Ubuntu, entrambe le volte ottengo lo stesso risultato.

Ho ridotto il limite alla dipendenza da jconfig. Se commento il blocco sottostante, le origini del servizio Web vengono create correttamente.

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

Grazie per l'aiuto.

+0

esegui Maven con -X - si spera che otterrai maggiori informazioni dal plugin jaxws. – tdrury

+0

I tre punti in 'C:/Users /.../ src /' sembrano sbagliati, o è una qualche nuova funzionalità di Windows? –

+0

Il ... è solo per spogliare il percorso completo. L'esecuzione con -X non fornisce alcuna informazione utile. Ho rimosso la dipendenza di jconfig e l'ho sostituita con Commons Configuration (che credo sia comunque migliore) e il progetto si costruisce ora. – jebbench

risposta

6

Si dovrebbe usare:

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

che è la versione più recente (si noti che il plugin siamo spostati in org.jvnet.jax-ws-commons)

Edit:

Si potrebbe prova in modo selettivo escludendo le dipendenze di configurazione di jconfig. L'elenco completo è simile a:

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

Modifica: è effettivamente necessario jconfig? In caso contrario, basta sbarazzarsi di esso.

+0

Ho aggiornato il mio POM come suggerito, ma ottengo lo stesso risultato di prima. La rimozione della dipendenza di JConfig consentirà la creazione del progetto. – jebbench

+1

L'incremento della versione di jaxws-maven-plug in 2.2 ha risolto lo stesso problema per me, grazie. – s1mm0t

0

Nella scheda JRE di configurazione di esecuzione del progetto, selezionare il JRE alternativo e aggiungere il percorso del JDK installato. Per me, risolvere questo problema.

Problemi correlati