- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个胖客户端,它使用 SOAP 服务来实现某些功能(错误报告等)
我的 JAX-WS 工作正常,但默认情况下(至少在 netbeans 中)它会在每次初始化服务时从远程服务器获取 WSDL。我希望这有助于提供一些版本控制支持等,但这不是我想要的。
我已将 wsdllocation
参数添加到 wsimport,以将生成的类指向本地资源。以下代码片段是从 ApplicationService.java 加载 WSDL 资源的 URL。
baseUrl = net.example.ApplicationService.class.getResource(".");
url = new URL(baseUrl, "service.wsdl");
我很确定指向存储在 net/example/resources 包中的 jar 内的资源应该没有问题,并且 jar 本身是按预期构建的。但是,该服务不会加载...具体来说,当我调用 ApplicationService.getPort(); 时,我收到 NullPointerException;
这可能吗?还是只是徒劳无功?
最佳答案
是的,这绝对是可能的,因为我在通过 javax.xml.ws.EndpointReference(一个 WS-A 相关类)创建客户端时已经这样做了。我已将 WSDL 的类路径引用添加到 WS-A EndPointReference,并且 JAX-WS 的 Metro 实现加载了它。无论是从 WS-A EndPointReference 还是从文件或 http URL 加载 WSDL,您的 JAX-WS 实现都应该使用相同的 WSDL 解析代码,因为您所做的只是解析 URL。
最适合您的方法可能是执行以下操作:
URL wsdlUrl = MyClass.class.getResource(
"/class/path/to/wsdl/yourWSDL.wsdl");
Service yourService= Service.create(
wsdlUrl,
...);
其中 ... 表示 WSDL 内 WSDL 服务的 QName。现在要记住的重要一点是您的 WSDL 需要完整且有效。这意味着,如果您的 WSDL 导入 XSD 文件或其他 WSDL,则 URL 必须正确。如果您将导入的 WSDL 和 XSD 包含在与 WSDL 文件相同的 JAR 中,则应该使用相对 URL 进行导入,并将所有导入保留在同一个 JAR 文件中。 JAR URL 处理程序不会将相对 URL 视为相对于类路径,而是相对于 JAR 文件内的相对 URL,因此您不能在跨 JAR 运行的 WSDL 中进行导入,除非您实现自定义 URL 处理程序和您自己的前缀基于类路径的导入解析。如果您的 WSDL 导入外部资源,那没问题,但如果这些资源发生移动,您就会面临维护问题。即使使用类路径中 WSDL 的静态副本也违背了 WSDL、Web 服务和 JAX-WS 的精神,但有时这是必要的。
最后,如果您嵌入静态 WSDL,我建议您至少使服务端点可配置以用于测试和部署目的。重新配置 Web 服务客户端端点的代码如下:
YourClientInterface client = yourService.getPort(
new QName("...", "..."),
YourClientInterface.class);
BindingProvider bp = (BindingProvider) client;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://localhost:8080/yourServiceEndpoint");
关于wsdl - JAX-WS 从 jar 加载 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764772/
为什么 WSDL 引入 wsdl:message?和消息部分? 与在操作参数(输入、输出、故障)中直接使用 XSD 相比,他们可以带来什么优势? 它们(带有 wsdl 消息部分的 wsdl 消息)如何
这个问题看起来很简单,但我找不到合适的地方在 WSDL 文档中设置其定义的版本。 目标是能够很容易地看到它何时过时,以及我将来何时更新它。 我要把它设为 1.0。如果将来我向它添加新操作,我将其设置为
在 WSDL 文件中,函数可以返回类型或元素。到目前为止,我仅使用自定义类型作为结果。但是,我想知道什么时候Element应该比Type更合适?它们有什么区别? 有什么区别吗 和
我在 web sphere 服务器上部署了一个 jax-ws web 服务,当我尝试使用 url 在浏览器中访问 wsdl 时 "Http://localhost:7001/HelloWorldSer
我在使用 SVCUtil 为 WCF 生成代理时遇到错误。错误是 Attempting to download metadata from 'net.pipe://localhost/WebServi
我正在遵循 WSDL-first(由我们的客户提供)方法来开发 WCF 服务,但是从我的 wcf 服务生成的 WSDL 与我们的客户提供给我的 WSDL 略有不同,并且由于这种不匹配,客户在调用我的服
我有嵌套的 WSDL,我想将其扁平化。 wsdl 导入 xsd 文件,这些文件又包含其他文件等。我喜欢把整个东西压平成一个文件,以便将它提供给一个无法执行导入/包含的工具。有没有我可以使用的简单工具(
我正在尝试使用一些统计信息进行 WSDL 解析(使用 c#.net)。我的统计数据取决于 WSDL 中的文档标签。我想知道可以包含文档标签的 wsdl 标签列表来检查它们。 我试图阅读 WS-I 基本
我有一个 WSDL 文件。我想将 wsdl 文件转换为 Web 服务类文件。 是否可以?如果是,请向我详细解释。 最佳答案 在解决方案资源管理器中右键单击 您的项目并转到“添加服务 引用...” 按窗
我正在使用 Axis 为示例 WebService 建模。我现在正在做的是试图了解自动化 wsdl 和代码生成的局限性。 现在对于一些服务器端代码: 这是示例 Web 服务的框架: public cl
我有一个 Silverlight 应用程序,它通过 WCF 服务与服务器端的 ADO.Net 数据实体通信。实际上,我正在使用多个 WCF 服务与三个不同的数据 ADO.Net 数据实体进行通信。我最
是否有使用服务端点地址获取服务 WSDL 的通用方法。我知道这可以通过将 ?wsdl 附加到 Axis2 服务来完成。但是这个属性是否也适用于其他 Web 服务容器? 最佳答案 ?wsdl 适用于所有
例如使用 png归档其 mime-type是“图像/png”;那么 wsdl 的 MIME 类型是什么?文件 ? 最佳答案 text/xml - WSDL 是基于 XML 格式的服务描述。 您可以在“
我的服务是从一个 wsdl 文件中选取的。但是发布的服务 wso2 是 chenged。如果我希望 wso2 像我的 wsdl 文件一样发布。如何设置?例如,我的 wsdl 文件是:
我需要在给定 XSD 文件的情况下生成 WSDL 文件。我该怎么做呢?我可以在VS2005中这样做吗?最简单的方法是什么? 最佳答案 你不能 - XSD 描述数据方面,例如Web 服务的功能 - WS
有什么方法可以从 wsdl 生成 xsd 吗?任何链接或工具也可以。最简单的方法是什么? 最佳答案 您可以使用SoapUI:http://www.soapui.org/这是一个通常很方便的程序。创建一
我启动我的 azure 应用程序,浏览到 svc 文件 http://127.0.0.1:82/transaction.svc ,我得到了通常的结果: You have created a servi
我使用动态端点 wsdl(通过 http 的 wsdl)来生成客户端。这工作得很好。 是否可以从动态wsdl的http链接生成静态wsdl? 问题是动态 wsdl 只能从一台机器访问。 我想在另一台电
我想知道是否可以将请求从一个 wsdl 发送到另一个 wsdl。如果是,那我该怎么做? 流程将是: 我想使用 switchyard 公开一个 wsdl,比如 wsdl-1,它可能有 100 个参数,带
我按照定义的步骤使用 Spring Boot 创建了一个网络服务 here当我尝试下载 wsdl 时,我不得不在 url 中使用 .wsdl 。但是,当我使用 ?wsdl 时,不会下载 wsdl。当我
我是一名优秀的程序员,十分优秀!