ale*_*oat 6 java wsdl jaxb wsimport objectfactory
我有多个(假设是2,A和B)webservices,我需要生成一个客户端来使用它们.在Netbeans中,我使用向导"new Web Service Client"传递两个wsdl,查看输出Netbeans只需为每个wsmport调用wsimport.
wsimport http:/mydomain/wsA.svc?wsdl
wsimport http:/mydomain/wsB.svc?wsdl
Run Code Online (Sandbox Code Playgroud)
A和B都生成一个相同的包com.mydomain.myapp(我猜它们是在同一个命名空间中定义的),所以我得到了在同一个包中合并的A和B的存根类集.
但是,wsimport还为每个Web服务创建一个ObjectFactory,因此如果我在AI获取与B定义相关的ObjectFactory之后生成B的存根(因为第一个,A被覆盖).相反,如果我切换订单,A的ObjectFactory仍然存在.
问题是我需要两个ObjectFactories才能为Web服务A和B的类型创建JAXBElements包装clas实例.
有没有办法在Java包中映射A的名称空间,在另一个中映射B以获取
com.mydomain.myapp.a
com.mydomain.myapp.b
Run Code Online (Sandbox Code Playgroud)
所以保留两个ObjectFactories?
简单的重构没有帮助,因为在内部调用了getClass(),一旦一个包被重构,它就不再起作用了.
您可以通过 JAXB 绑定文件来做到这一点 - 看看这个问题/答案:java wsimport rename/ different ObjectFactory.java
从这个答案中,看看 oracle 的绑定文件内容:http://docs.oracle.com/javaee/5/tutorial/doc/bnbbf.html
| 归档时间: |
|
| 查看次数: |
8777 次 |
| 最近记录: |