Java2WS CXF工具和包< =>命名空间关系

时间:2013-04-10 00:39:30

标签: java web-services cxf

我遇到java2WS CXF工具的问题,我的cproject是用Maven构建的,我有两个模块,一个用于公开服务,另一个用于客户端。

公开服务的模块结构如下所示:

- WS-Service
  - com.oz.types
    - PersonType.java
  - com.oz.dto
    - AddressDto.java
    - UserDto.java
    - PersonDto.java
  - com.oz.ws.sei
    - UserManager
  - com.oz.ws.sei.impl
    - UserManagerImpl

我用ant运行生成器任务,问题不在于dto包描述符中的命名空间放在SEI的同一名称空间中,即http://sei.ws.oz.com而不是http://dto.oz.com

真正的问题是当我使用不同的包生成其他使用相同dto的WSDL时,因为两者的客户端都生成以下内容:

- com.oz.ws.sei
    - PersonType.java
    - AddressDto.java
    - UserDto.java
    - PersonDto.java
    - UserManager.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用户           );

但是生成的代码只创建了一个包和一个名为ObjectFactory的util类,而DTO仍然在同一个包中。

怎么能说尊重我的包的生成器工具?

感谢您的时间。

0 个答案:

没有答案