【发布时间】:2015-01-05 12:37:53
【问题描述】:
我正在使用 wsimport 为 JAX-WS Web 服务调用生成客户端存根
wsimport 有 -p 选项,允许自定义包的名称。
例如。如果 WSDL 的命名空间为 com.abc,那么您可以通过使用 -p com.pqr 命令行调用 wsimport 将 com.abc 替换为 com.pqr。
但是,只有在 wsdl 中只使用一个命名空间时,这才有效。
如果 wsdl 中有多个命名空间,有没有办法用不同的包名替换它们。
例如。如果我想将命名空间 com.abc.s1 替换为命名空间 com.pqr.s1 并将命名空间 com.abc.s2 替换为命名空间 com.pqr.s2。
如果我使用wsimport -p com.pqr.s1,它会将所有生成的类放入com.pqr.s1
有没有办法实现我想要的?
【问题讨论】:
-
可以使用自定义 jaxb 绑定。在此处发布您的 wsdl(或类似的内容)。理想的情况是您的各种架构位于单独的 xsd 中,但我认为您没有那个
-
@kolossus - 它们位于不同的模式中。这有什么帮助?
-
将它们放在单独的文件中意味着您不必处理混乱的 Xpath 或在 WSDL 中溢出一堆 jax-b 绑定指令
-
你有没有尝试过这个?
标签: java web-services wsdl jax-ws wsimport