带基本身份验证的wsdl2java(Axis 1.6.1)

时间:2011-10-13 09:26:33

标签: java java-ee wsdl axis2

我正在使用wsdl2java为Web服务生成我的java存根代码。

我知道自1.4以来一直是一个错误,无法访问需要HTTP基本身份验证的wsdl源。您将收到401错误,因为授权被拒绝且无法指定凭据。

是否有人知道此问题是否已解决或有人为此解决此问题?我可能会设置一个代理服务器,但这对我来说太麻烦了,我正在寻求一些简单的东西:)

3 个答案:

答案 0 :(得分: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");
...

答案 1 :(得分:0)

作为一种解决方法,我手动下载了wsdl文件(使用我的浏览器)并将其与我的代码一起保存,并将wsdl2java指向我的本地副本。

答案 2 :(得分:0)

您可以像这样在URL中传递用户名和密码:http://username:password@example.com/wsdl 它对我有用:1.7.9