webmethod java jax_java – jax-ws generation:@WebMethod vs. @ResponseWrapper

我有两个非常相似的wsdl文件,它们生成不同的Java代码.在第一种情况下,我得到一个带有@WebMethod-annotation和返回值的方法,在第二种情况下,我得到一个带有@ ResponseWrapper-annotation的方法,并且不生成返回值.我想要返回值.

1.服务1

产生:

@WebMethod

@WebResult(name = "commonReturnType", targetNamespace = "http://www.foo.com/fooSchemaTypes-v3.0/", partName = "returnValue")

public CommonReturnType foo(

@WebParam(name = "fooType", targetNamespace = "http://www.foo.com/fooSchemaTypes-v3.0/", partName = "user")

FooType user)

throws ServiceFault

;

2. FooBarService

genereates:

@WebMethod

@RequestWrapper(localName = "fooBar", targetNamespace = "http://www.foo.com/fooBarSchemaTypes-v1.0/", className = "com.foo.fooBar.v1_0.GetFileType")

@ResponseWrapper(localName = "fooBarResponse", targetNamespace = "http://www.foo.com/fooBarSchemaTypes-v1.0/", className = "com.foo.fooBar.v1_0.CommonReturnType")

public void ackFile(

@WebParam(name = "id", targetNamespace = "")

String id,

@WebParam(name = "timestamp", targetNamespace = "")

XMLGregorianCalendar timestamp,

@WebParam(name = "anotherId", targetNamespace = "")

String anotherId,

@WebParam(name = "fileId", targetNamespace = "")

String fileId,

@WebParam(name = "returnCode", targetNamespace = "", mode = WebParam.Mode.OUT)

Holder returnCode,

@WebParam(name = "errorMessage", targetNamespace = "", mode = WebParam.Mode.OUT)

Holder errorMessage);

生成代码的代码完全相同.

如有必要,我可以为消息和类型提供标记.我希望匿名化并没有弄乱相关部分.

我想第二个版本也带有返回值.我怎样才能做到这一点?

解决方法:

这有助于(仍然没有理解,为什么在案例2中这是必要的,而在1中没有必要):

false

在jaxws-custom.xml中

这是在生成ant任务:

标签:java,web-services,jax-ws

来源: https://codeday.me/bug/20190626/1289848.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值