我正在使用wsdl2java为Web服务生成我的java存根代码。
我知道自1.4以来一直是一个错误,无法访问需要HTTP基本身份验证的wsdl源。您将收到401错误,因为授权被拒绝且无法指定凭据。
是否有人知道此问题是否已解决或有人为此解决此问题?我可能会设置一个代理服务器,但这对我来说太麻烦了,我正在寻求一些简单的东西:)
答案 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