Webservice学习--JAX-WS发布Webservice和调用出现的问题

        最近学习JAX-WS,平台j2ee自带的JAX-WS,jdk1.7 eclipse4.3,发现一些有趣的事情:

        发布一个Webservice,Endpoint.publish(http://localhost:8090/wcs/service/v1, new XServiceImpl());

正常发布,没有抛出异常或警告。服务端调用时,控制台输出:SEVERE: Unsupported Content-Type: application/soap+xml。查看网上知道是服务端是SOAP1.1而客户端是SOAP1.2引起的。不知道JAX-WS是否默认绑定为SOAP1.1,还是编写的wsdl指定,回头有空查资料想想。

     将XServiceImpl类增加注释,意思想绑定为SOAP1.2:

@BindingType(SOAPBinding.SOAP12HTTP_BINDING) 或
@BindingType(value = "http://www.w3.org/2003/05/soap/bindings/HTTP/")

       结果输出:Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Cannot generate WSDL for binding http://www.w3.org/2003/05/soap/bindings/HTTP/

      这有些意外,网上说可能是写jax-ws当时http://www.w3.org/2003/05/soap/bindings/HTTP/未成为w3c标准,我想不一定,也许某个地方有bug。在Java的页面上指出用

@BindingType(value = "http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/")代替,

发布是输出WARNING: Generating non-standard WSDL for the specified binding,客户端可以正常调用。

疑问是为什么会出现上面的警告,网上说不要理他,难道没有解决的方法?期待!


后续:
对于结果输出:Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Cannot generate WSDL for binding http://www.w3.org/2003/05/soap/bindings/HTTP/
再说明:
估计jre内的jax ws版本较低,从发布后的wsdl可以看出

在项目里加入较新的jax-ws包之后,如2.2.9或10等
jaxws-api.jar; jaxws-rt.jar; jaxws-tools.jar
再运行,没有之前的警告了,看新布后的wsdl可以得到

前后两者明显不同。且SOAP是1.2版本。



你可能感兴趣的:(Webservice学习--JAX-WS发布Webservice和调用出现的问题)