2014-02-06 97 views
1

我試圖使用org.jvnet.jax-ws-commons jaxws-maven-pluginwsgen目標生成web服務構件。看起來這個過程的一部分是執行一個命令,該命令包含了類路徑上的所有項目jar,並且這會導致超出命令行字符限制的命令超過兩倍(在Windows 7上)。我該如何解決這個問題?由於長類路徑使用Maven的jaxws wsgen插件時,命令行參數太長

[INFO] --- jaxws-maven-plugin:2.3:wsgen (generate-wsdl) @ interface --- 
[INFO] Processing: com.mycompany.myproject.MyWebService 
[INFO] jaxws:wsgen args: [-keep, -s, D:\Dev\myproject\target\generated-sources\wsgen, -d, D:\Dev\myproject\target\classes, -encoding, Cp1252, com.mycompany.myproject.MyWebService] 
[WARNING] Length of the command is limitted to 8191 characters but it has 15450 characters. 
[WARNING] cmd.exe /X /C "D:\java\jdk1.6.0_26\jre\bin\java.exe 

-Xbootclasspath/p: 
D:\m2repo\javax\annotation\javax.annotation-api\1.2-b03\javax.annotation-api-1.2-b03.jar; 
D:\m2repo\javax\jws\jsr181-api\1.0-MR1\jsr181-api-1.0-MR1.jar; 
D:\m2repo\javax\xml\ws\jaxws-api\2.2.9\jaxws-api-2.2.9.jar; 
D:\m2repo\javax\xml\soap\saaj-api\1.3.4\saaj-api-1.3.4.jar; 
D:\m2repo\javax\xml\bind\jaxb-api\2.2.7\jaxb-api-2.2.7.jar 

-cp 
/D:/m2repo/org/jvnet/jax-ws-commons/jaxws-maven-plugin/2.3/jaxws-maven-plugin-2.3.jar org.jvnet.jax_ws_commons.jaxws.Invoker com.sun.tools.ws.wscompile.WsgenTool 

-pathfile 
C:\Users\me\AppData\Local\Temp\jax-ws-mvn-plugin-cp83681795198066117.txt 

-cp 
<long list of project jars from .m2 repository> 

-keep 
-s D:\Dev\project\target\generated-sources\wsgen 
-d D:\Dev\project\target\classes 
-encoding Cp1252 

com.mycompany.myproject.MyWebService" 

The command line is too long. 

回答

1

這是一個已知的bug(JAX-WS-COMMON-110),將在2.3.1版中修復。

直到jaxws-maven-plugin 2.3.1正式發佈,你可以從svn編譯它。

svn checkout https://svn.java.net/svn/jax-ws-commons~svn/tags/jaxws-maven-plugin-2.3.1-b03 
cd jaxws-maven-plugin-2.3.1-b03 
mvn install 

,然後更新您的pom.xml使用2.3.1-B03版:

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