当我发布从WSDL创建的Web服务时,发布后创建的WSDL与原始WSDL不同。区别在于发布后创建的WSDL / XSD具有包含所有根元素的附加元素(ARG0)。
由于上述原因,我无法将原始WSDL / XSD共享给客户端开发人员,因为原始WSDL和发布后创建的WSDL / XSD不同。
我使用Java作为编程语言和JAX-WS。
使用API javax.xml.ws.Endpoint发布Web服务,而无需任何应用程序服务器。
Endpoint.publish(URL,webserviceinstance)
提前致谢。
答案 0 :(得分:1)
由于问题是不必要的包装问题,我专注于包装注释。最后我发现这个问题有一个相关的注释。在Class的开头添加以下注释语句后,问题已经解决。
@SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
public class WebServiceHandler implements WebService {
//....
}
从现在开始,我可以创建从原始WSDL到已部署机器的成功请求。
答案 1 :(得分:0)
如果您发布wsdl,可以进行更好的评估。鉴于您正在看到一个意外的包装器,我的猜测是jax-ws正在以不同于您想要的方式解释您的原始wsdl。这里的页面(http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/)讨论了不同的wsdl配置。我的建议是你遵循使用document / literal / wrapped惯例的说明,因为它或多或少是基于肥皂的服务的主流。
生成的已发布wsdl在服务名称,端口名称或命名空间方面仍然可能略有不同,除非您使用@Webservice批注属性将这些属性强制为特定值,但它们将保持一致,以便您可以提供向您的客户发布了wsdl并期望成功。
答案 2 :(得分:0)
此类问题的最常见原因是实现Web服务的类没有带有正确@WebService
属性的endpointInterface
注释。实际上,实现从WSDL生成的端点接口是不够的。