我有两个非常相似的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