jax-ws - 如何自定义名称在 Java 中保留的 SOAP 操作的 JAXWS 映射

标签 jax-ws glassfish-3 java-metro-framework jax-ws-customization

我正在尝试使用嵌入在 GlassFish 3.1.2.2 中的 JAX-WS 2.2.6 的合作伙伴编译 wsdl,并得到以下编译错误:

 [wsimport] [ERROR] Invalid operation "Void", it's java reserved word, can't generate java method. Use customization to change the operation name.

所以我尝试通过自定义 JAXWS 绑定(bind)文件将此操作名称映射到另一个 Java 方法名称:
<?xml version="1.0" encoding="utf-8"?>
<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                wsdlLocation="https://partner.com/BasicOperationsService?wsdl">

  <jaxws:bindings node="wsdl:definitions/wsdl:binding[@name='BasicHttpBinding_BasicOperations']/wsdl:operation[@name='Void']">
    <jaxws:method name="voidTx"/>
  </jaxws:bindings->

</jaxws:bindings>

但它似乎不认识这个 方法元素:
 [wsimport] [ERROR] invalid extension element: "jaxws:method" (in namespace "http://java.sun.com/xml/ns/jaxws")

我有点不知所措,因为这是正确的命名空间,并且与 https://jax-ws.java.net/nonav/2.2.6/docs/ch03.html#standard-customizations 的第 9.2.7.1 节中记录的完全相同。

这不是 xpath 问题,就像我更改节点一样,然后我收到另一个错误,即“XPath 评估导致空目标节点”。

任何的想法?
谢谢!

最佳答案

我遇到了同样的问题,但帮助更改了 xPath。替换 wsdl:binding通过 wsdl:portType

wsdl:definitions/wsdl:portType[@name='xxx']/wsdl:operation[@name='yyy']

关于jax-ws - 如何自定义名称在 Java 中保留的 SOAP 操作的 JAXWS 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20205131/

相关文章:

java - 如何将java对象从客户端传递到Web服务

maven-2 - Maven 嵌入式 Glassfish 插件

java - 确定 HTTP 资源在 Web 服务器上是否可用

java - 是否有全面的 Java Metro 和 WCF 互操作性网站、技术或资源?

jax-ws - 如何在 JAX-WS Web 服务中全局配置目标命名空间?

java - WSContext.getUserPrincipal() 为密码摘要认证返回 null

java - JAX-WS、weblogic 中的容器管理事务

jax-ws - XMLElement@required=true 的含义

java - JSF 命名 Bean,Eager 应用程序范围(又名 @ManagedBean(eager=true) )

java - 如何将参数添加到 SOAP URL 并在服务端检索它们