我有一个要求,在我的SOAP中我必须使用名称中包含-
(连字符)的字段,这些字段不能在Java对象中用作字段名称。
例如
<RegisterUser>
<user-pin></user-pin>
<user-id></user-id>
</RegisterUser>
在Java中我有一个班级RegisterUser
,它有字段userPin
,userId
(我不能将其命名为user-pin
,user-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>
答案 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>
这是你在寻找什么?