自定义元素名称n wsdl

时间:2014-01-04 09:14:05

标签: wsdl

我有一个要求,在我的SOAP中我必须使用名称中包含-(连字符)的字段,这些字段不能在Java对象中用作字段名称。

例如

<RegisterUser> 
   <user-pin></user-pin> 
   <user-id></user-id> 
</RegisterUser> 

在Java中我有一个班级RegisterUser,它有字段userPinuserId(我不能将其命名为user-pinuser-id)。

我们有什么方法可以使用webparam注释来映射它吗?

我也尝试了XmlElement注释,但它没有在wsdl中生成相应的映射,而是使用java元素名称本身生成。

我使用下面的ant脚本从我的java生成wsdl。

     <target name="build-wsdl">
   <!--Compile the java code from ${src} into ${build} -->
   <jwsc srcdir="${src}" destdir="${ear-dir}" debug="${debug}" debuglevel="${debuglevel}">
      <jws file="com/user/service/LoginService.java"/>
   <classpath>
     <pathelement path="${classpath}"/>
       <fileset dir="${lib}">
        <include name="**/*.jar"/>
    </fileset>
   </classpath>
   </jwsc>
</target>

1 个答案:

答案 0 :(得分:1)

如果您在java中使用web服务的jax-ws实现。您可以使用如下所示的@WebParam注释。

public interface RegisterUser{
@WebMethod String getRegisterUser( @WebParam (name="user-id") String userID, @WebParam(name="user-pin" String userPin);}

现在,您为此方法生成的wsdl元素将是

<message name="getRegisterUser">
<part name="user-id" type="xsd:string"></part>
<part name="user-pin" type="xsd:string"></part>
</message>

这是你在寻找什么?