我的 java2WS CXF 工具有问题,我的 cproject 是用 Maven 构建的,我有两个模块,一个用于公开服务,另一个用于客户端。
暴露服务的模块结构如下:
- WS-服务 - com.oz.types - PersonType.java - com.oz.dto -AddressDto.java - UserDto.java -PersonDto.java - com.oz.ws.sei - 用户管理器 - com.oz.ws.sei.impl - UserManagerImpl
我用 ant 运行生成器任务,问题是 dto 包的描述符中的命名空间被放在与 SEI 相同的命名空间中,即http://sei.ws.oz.com而不是http://dto。盎司.com
真正的问题是当我使用相同的 dto 生成其他具有不同包的 WSDL 时,因为两者的客户端都会生成以下内容:
- com.oz.ws.sei - PersonType.java -AddressDto.java - UserDto.java -PersonDto.java - 用户管理器.java - ...... - com.oz.ws.sei2 - PersonType.java -AddressDto.java - UserDto.java -PersonDto.java - SeiTwo.java - ......
如您所见,两个包中都重复了 dto,我尝试使用 @WebParam 注释在 SEI 中明确定义命名空间:
@WebMethod boolean updateUserInfo(@WebParam(name = "user", targetNamespace = " http://ws.oz.com/dto ") UserDto user);
但是生成的代码只创建了一个包和一个名为 ObjectFactory 的 util 类,而 DTO 仍然留在同一个包中。
怎么能说尊重我的包的生成器工具?
谢谢你的时间。