我一直在尝试使用
中的w3schools tempConvertor webservicehttps://www.w3schools.com/xml/tempconvert.asmx?WSDL
它在生成客户端类
之前给了我这个警告消息解析WSDL ...
[警告] SOAP端口" TempConvertSoap12":使用非标准SOAP 1.2 捆绑。第147行 文件:/ C:/Users/Bigesta/Documents/NetBeansProjects/JavaebServiceDemo/xml-resources/web-service-references/tempconvert/wsdl/www.w3schools.com/xml/tempconvert.asmx.wsdl
[警告] Port" TempConvertHttpPost"它不是SOAP端口,它没有 肥皂:地址线150 文件:/ C:/Users/Bigesta/Documents/NetBeansProjects/JavaebServiceDemo/xml-resources/web-service-references/tempconvert/wsdl/www.w3schools.com/xml/tempconvert.asmx.wsdl
[警告] port" TempConvertHttpPost":不是标准的SOAP端口。该 生成的工件可能无法与JAX-WS运行时一起使用。第150行 文件:/ C:/Users/Bigesta/Documents/NetBeansProjects/JavaebServiceDemo/xml-resources/web-service-references/tempconvert/wsdl/www.w3schools.com/xml/tempconvert.asmx.wsdl。
生成代码......
HTTPS \ www_w3schools_com \ XML \ CelsiusToFahrenheit.java HTTPS \ www_w3schools_com \ XML \ CelsiusToFahrenheitResponse.java HTTPS \ www_w3schools_com \ XML \ FahrenheitToCelsius.java HTTPS \ www_w3schools_com \ XML \ FahrenheitToCelsiusResponse.java HTTPS \ www_w3schools_com \ XML \ ObjectFactory.java HTTPS \ www_w3schools_com \ XML \ TempConvert.java HTTPS \ www_w3schools_com \ XML \ TempConvertHttpPost.java HTTPS \ www_w3schools_com \ XML \ TempConvertSoap.java https \ www_w3schools_com \ xml \ package-info.java将9个文件复制到 C:\用户\ Bigesta \文件\的NetBeansProjects \ JavaebServiceDemo \建立\产生来源\ JAX-WS 建立成功(总时间:8秒)
当我试图调用该服务时,我得到了这个例外
线程中的异常" main" com.sun.xml.internal.ws.client.ClientTransportException:服务器 发送HTTP状态码301:永久移动 com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:310) 在 com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:259) 在 com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:217) 在 com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:130) 在 com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95) 在com.sun.xml.internal.ws.api.pipe.Fiber .__ doRun(Fiber.java:1121) 在com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:1035)at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:1004)at at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:862)at at com.sun.xml.internal.ws.client.Stub.process(Stub.java:448)at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:178) 在 com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93) 在 com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:77) 在 com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147) 在com.sun.proxy。$ Proxy31.fahrenheitToCelsius(未知来源)at javaebservicedemo.JavaebServiceDemo.fahrenheitToCelsius(JavaebServiceDemo.java:26) 在 javaebservicedemo.JavaebServiceDemo.main(JavaebServiceDemo.java:19)
我怎样才能让它发挥作用?
答案 0 :(得分:0)
解析WSDL时,警告声明WSDL特别没有遵循SOAP 1.2绑定约定:SOAP端口没有soap:address。这个WSDL可能试图支持SOAP 1.1和1.2
您获得的回复是301: Moved Permanently,它正在尝试重定向您。
这里有一个例子:https://www.w3schools.com/xml/tempconvert.asmx?op=FahrenheitToCelsius
然而,当我使用帖子示例时,我收到500服务器错误,这不是一个好兆头。
为了节省时间,我建议在创建演示之前使用像SOAPUI这样的工具来测试和验证服务是否正常工作。您可以尝试使用其他服务,例如http://www.webservicex.net/ConvertTemperature.asmx?WSDL