我有多个(让我们说2,A和B)web服务,我需要生成一个客户端使用它们togheter。 在Netbeans中,我使用向导“新的Web服务客户端”传递两个wsdl,看着输出Netbeans只需调用每个人的wsimport。wsimport:多个wsdl覆盖ObjectFactory
wsimport http:/mydomain/wsA.svc?wsdl
wsimport http:/mydomain/wsB.svc?wsdl
A和B,产生相同的包com.mydomain.myapp(I猜测它们在相同的命名空间定义),所以我得到的短线类别集合A和B在相同的包合并。
但是,wsimport也为每个webservice创建一个ObjectFactory,所以如果我在A之后生成B的存根,我只获得与B定义相关的ObjectFactory(因为第一个A被覆盖)。相反,如果我切换顺序,A的ObjectFactory仍然存在。
的问题是,我需要同时ObjectFactories以创建类型既web服务A和B.
的JAXBElements包装CLAS情况下,有没有办法为一个命名空间映射Java包和B在另一个为了获得
com.mydomain.myapp.a
com.mydomain.myapp.b
所以保持这两个ObjectFactories?
简单的重构没有帮助,因为内部调用了getClass(),所以一旦重构了包,它就不再工作了。
好的!我使用了这个XML绑定: \t \t \t
alexroat
只是有一个想法 - 你有没有尝试过“wsimport -p com.mydomain.myapp.a http:/mydomain/wsA.svc?wsdl”,然后是“wsimport -p com.mydomain.myapp.b http:/ mydomain/wsB .SVC?WSDL“?这将把所有生成的代码放到指定的包中(按照“-p”开关),而不需要绑定文件。 (应该早点想到它......) – FOOM
是的,我做到了。像“两个声明在ObjectFactory中引起冲突”类有很多错误。和“具有相同名称的类/接口”com.anthesi.prova.ExecuteTransmDocModelResponse“已在使用中,请使用类定制来解决此冲突。 – alexroat