如何使用netbeans从wsdl中使用w3schools tempCnvertor webservice?

时间:2017-06-09 09:14:34

标签: java jax-ws webservices-client

我一直在尝试使用

中的w3schools tempConvertor webservice

https://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)

我怎样才能让它发挥作用?

1 个答案:

答案 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