wsimport生成的java类-401错误
我使用wsimport java类生成。我导入的wsdl请求一个身份验证 我用了这个例子:wsimport生成的java类-401错误,java,wsdl,wsimport,Java,Wsdl,Wsimport,我使用wsimport java类生成。我导入的wsdl请求一个身份验证 我用了这个例子: wsimport -Xauthfile C:\auth.txt -keep http://example.com/test?wsdl -s c:\path\to\source\ auth.txt中包含以下代码: http://user:password@http://example.com/test?wsdl 它成功地创建了java类 我的java代码: OrderService servic
wsimport -Xauthfile C:\auth.txt -keep http://example.com/test?wsdl -s c:\path\to\source\
auth.txt中包含以下代码:
http://user:password@http://example.com/test?wsdl
它成功地创建了java类
我的java代码:
OrderService service = new OrderService();
Order port = service.getOrderPort();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "endpoint");
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "user");
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
第一行导致以下异常:
Exception in thread "main" javax.xml.ws.WebServiceException: No access to WSDL at: http://example.com/test?wsdl. Access unsuccessful with:
Server returned HTTP response code: 401 for URL: http://example.com/test?wsdl.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:250)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:231)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:194)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:163)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:348)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:306)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:215)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:196)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:192)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
at javax.xml.ws.Service.<init>(Service.java:77)
at com.innovabee.member.OrderService.<init>(OrderService.java:42)
at webserviceefa.Webservice.main(Webservice.java:42)
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: http://example.com/test?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.URL.openStream(URL.java:1045)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:984)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:385)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:216)
... 11 more
线程“main”javax.xml.ws.WebServiceException中的异常:无法在以下位置访问WSDL:http://example.com/test?wsdl. 访问失败,原因是:
服务器为URL返回了HTTP响应代码:401:http://example.com/test?wsdl.
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:250)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:231)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:194)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:163)
在com.sun.xml.internal.ws.client.wsservicedegate.parseWSDL(wsservicedegate.java:348)
在com.sun.xml.internal.ws.client.WSServiceDelegate上。(WSServiceDelegate.java:306)
在com.sun.xml.internal.ws.client.WSServiceDelegate上。(WSServiceDelegate.java:215)
在com.sun.xml.internal.ws.client.WSServiceDelegate上。(WSServiceDelegate.java:196)
在com.sun.xml.internal.ws.client.WSServiceDelegate上。(WSServiceDelegate.java:192)
位于com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
位于javax.xml.ws.Service。(Service.java:77)
位于com.innovabee.member.OrderService。(OrderService.java:42)
位于webserviceefa.Webservice.main(Webservice.java:42)
原因:java.io.IOException:服务器返回了URL的HTTP响应代码:401:http://example.com/test?wsdl
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
在java.net.URL.openStream(URL.java:1045)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:984)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:385)
位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:216)
... 还有11个
示例来自:您是否尝试了不带“?wsdl”的URL?也许你可以用另一种方式提供你的凭证。好的,谢谢,我使用了这个解决方案,它很有效。这不是最好的解决方案,似乎没有人有更好的解决方案,但它可以运行。