2011-01-26 71 views
2

到WSDL我想用CXF - Maven的插件生成Java代碼從每本文檔一個WSDL:http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html如何定義密碼CXF - Maven的插件

我想達到的服務密碼保護。我如何指定密碼?這似乎沒有記錄。

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <configuration> 
     <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
     <wsdlOptions> 
      <wsdlOption> 
      <wsdl>http://host/TheService.wsdl</wsdl> 
      </wsdlOption> 
     </wsdlOptions> 
     </configuration> 
     <goals> 
     <goal>wsdl2java</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
+0

安德魯是正確的,有是沒有選擇的,但你可以嘗試[我的答案](http://stackoverflow.com/a/14044891/1071508)。 –

回答

0

您是否嘗試過包括您user settings文件(〜/ .m2目錄/ settings.xml中)內的主機的用戶名/密碼?我會試試看看會發生什麼。

+0

你的意思是在部分?我將URL放在服務器的哪裏? – awynne

0

似乎沒有辦法使用此插件下載受密碼保護的wsdl,至少在您實際配置的WsdlOption中沒有相應的字段。

相反,在CXF版本2.3及更高版本,您可以配置從Maven倉庫一個WSDL與<wsdlArtifact>install the manually downloaded wsldfile

+0

另一個解決方法是,假設您手動將wsdl下載到項目中,您可以手動將wsdl文件寫入''標記和遠程路徑中的

3

您可以使用基本身份驗證方案的URI是這樣的:

<wsdl>http://username:[email protected]/TheService.wsdl</wsdl> 

但如果您的WSDL使用相對路徑引用xsd,用戶名和密碼將不會用於加載這些xsd ...你可以做的是設置一個認證者globaly ...你需要做的是添加exec插件來運行將爲當前正在運行的jvm設置默認身份驗證器的類:

使用http://mojo.codehaus.org/exec-maven-plugin/和exec:java在與codegen插件相同的jvm中運行您的類。 wsdl2java執行必須在exec:java之後發生。您運行類將設置身份驗證爲在這裏說明一下:有一天http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html

,我們將有一個有用的-Ddefault.authenticatorClass = package.to.my.AuthenticatorImpl JVM參數...

+0

您的回覆中已寫入「exec: java必須在exec:java後調用。這是什麼意思? – shashikanthb

+0

固定抱歉在設置Authenticator後必須執行wsdl2java – avianey

相關問題