1

我的 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 仍然留在同一个包中。

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

谢谢你的时间。

4

0 回答 0