java - 如何在只有 XSD 而没有 WSDL 的情况下调用 Java 中的 Web 服务?

标签 java soap jax-ws cxf jaxb2

我在公司外部有一个 Web 服务,它没有为他们的服务提供 WSDL。他们确实提供:

  • 有关如何 POST 的详细文档为他们服务
  • 多好的SoapEnvelope应该看起来像
  • 甚至一个.xsd我可以用它来创建消息以放入 SOAP <env:Body></env:Body>电话。

如何在没有 WSDL 的情况下对 Web 服务进行 SOAP 调用(在 Java 中)?我需要一个工具来获取我的 JAXB 格式的 XML 消息,将其包装在 SOAP 信封中,并将其作为 HTTP POST 发送到某些 Web 服务(使用 SSL 和证书)。

是否有工具可以让这一切变得简单?我看过 CXFJAX-WS dispatch简而言之,但由于大多数示例和文档都期望 wsdl文档,我不确定 CXF 是否是我应该使用的。

最佳答案

他们给你网址了吗?尝试冲浪到 http://the-url-of-service-that-does-not-provide-wsdl/ wsdl

这是您应该下载 WSDL 文件的标准 URL(除非他们手动编码所有内容)。

好吧,如果不行你有两种方法

  1. 根据他们的文档自己创建 WSDL。

  2. 使用您知道的任何工具解析 SOAP XML。例如 JAXB、Digester、DOM

关于java - 如何在只有 XSD 而没有 WSDL 的情况下调用 Java 中的 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752420/

相关文章:

java - 使用 FilterInputStream 删除 InputStream 的剩余部分

java - 使用volley将BLOB图像从mysql显示到android(json编码)

java - NoClassDeFoundError WSServletContextListener 和 XMLStreamBuffer

java - Web 服务响应命名空间与 WSDL 定义不匹配

java - 从 MainActivity 类中的另一个函数访问 WebView

java - jtextarea 不会用 GridBagConstraints 填充面板

php - 如何在 php 中读取传入的 SOAP 请求

web-services - Web服务-SOAP与 “XML over HTTP”

java - 如何在 SOAPEnvelope 中添加命名空间声明

java - 消除或理解 Jetty 9's "IllegalStateException : too much data after closed for HttpChannelOverHttp"