2011-10-13 92 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指向我的本地副本。