【问题标题】:How do i consume the w3schools tempCnvertor webservice from the wsdl with netbeans?如何使用 netbeans 从 wsdl 使用 w3schools tempCnvertor webservice?
【发布时间】:2017-06-09 09:14:33
【问题描述】:

我一直在尝试使用来自

的 w3schools tempConvertor 网络服务

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

[警告] 端口“TempConvertHttpPost”不是 SOAP 端口,它没有 肥皂:地址第 150 行 文件:/C:/Users/Bigesta/Documents/NetBeansProjects/JavaebServiceDemo/xml-resources/web-service-references/tempconvert/wsdl/www.w3schools.com/xml/tempconvert.asmx.wsdl

[WARNING] 端口“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:\Users\Bigesta\Documents\NetBeansProjects\JavaebServiceDemo\build\generated-sources\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) 在 com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:1004) 在 com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:862) 在 com.sun.xml.internal.ws.client.Stub.process(Stub.java:448) 在 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(未知来源) javaebservicedemo.JavaebServiceDemo.fahrenheitToCelsius(JavaebServiceDemo.java:26) 在 javaebservicedemo.JavaebServiceDemo.main(JavaebServiceDemo.java:19)

我怎样才能让它工作?

【问题讨论】:

    标签: java jax-ws webservices-client


    【解决方案1】:

    解析 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

    但是,当我使用 post 示例时,我收到一个 500 服务器错误,这不是一个好兆头。

    为了节省时间,我建议在创建演示之前使用 SOAPUI 之类的工具来测试和验证服务是否正常工作。您可以尝试使用其他服务,例如 http://www.webservicex.net/ConvertTemperature.asmx?WSDL

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多