2011-10-13 32 views
3

我正在使用wsdl2java爲Web服務生成我的java存根代碼。帶有基本身份驗證的wsdl2java(Axis 1.6.1)

我知道自從1.4版本以來一直存在一個缺陷,即無法訪問需要HTTP基本身份驗證的wsdl源代碼。您將收到401錯誤,因爲授權被拒絕並且無法指定憑證。

有誰知道這個問題是否已經解決或者有人爲此做了一個解決方法?我可以設置一個proxyy服務器可能,但是這對我來說太麻煩,我正在尋找一些簡單的:)

+0

我面臨與您同樣的問題。你有沒有嘗試過stub.setUsername()和stub.setPassword()? –

+0

是的,在使用web服務時工作。我的問題是我在maven中調用wsdl2java目標,我不知道如何在這裏指定憑據。 – Erik

+1

我找到了我的問題的解決方案。這是在IIS上啓用基本身份驗證。請爲您的問題嘗試。 –

回答

2

,你可以爲這個

... 
serviceStub = new TestBeanServiceStub("<WEB SERVICE URL>"); // Set your value 
HttpTransportProperties.Authenticator basicAuthenticator = new HttpTransportProperties.Authenticator(); 
List<String> authSchemes = new ArrayList<String>(); 
authSchemes.add(Authenticator.BASIC); 
basicAuthenticator.setAuthSchemes(authSchemes); 
basicAuthenticator.setUsername("<UserName>"); // Set your value 
basicAuthenticator.setPassword("<Password>"); // Set your value 
basicAuthenticator.setPreemptiveAuthentication(true); 
serviceStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, basicAuthenticator); 
serviceStub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, "false"); 
... 
0

嘗試作爲一種變通方法,我手動下載的WSDL文件(使用我的瀏覽器)並將其與我的代碼一起保存,並將wsdl2java指向我的本地副本。