版本:XFire 1.2.2
IDE:MyEclipse 5.1GA
JDK:Sun JDK 1.6.0
问题现象:
编制某电信级航空服务客户端时固定地出现以下异常:
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Could not marshall type.
Caused by: javax.xml.bind.JAXBException: com.SomeDomain.SomeObject nor any of its super class is known to this context
问题出现在注入 “XXXXXRequest” 对象并触发 Web 服务的瞬间。
搜索 Google 得不到有帮助的答复,找不到相关的中文资料。之前使用 Axis 1.1 编写的客户端运行正常。
问题原因:
在相同一个源码包内使用 XFire 对同一台服务器上路径相似、命名空间相同的两个 Web 服务生成 Web 服务客户端时,后生成的客户端程序会覆盖前一个客户端程序的 ObjectFactory.java,该 java 文件为 XFire 提供针对 Web 服务所使用的 Request 和 Response 对象的解释,当使用 MyEclipse 5.x 产生客户端时,ObjectFactory.java 只包含最近一次生成的客户端的 Request 和 Response 对象,而覆盖或舍弃了前一次生成的客户端的 Request 和 Response 对象,导致客户端运行时无法解释前一次生成的客户端的 Request 和 Response 对象,从而抛出 XFireFault: Could not marshall type 异常。
解决方案:
每次生成一个 Web 服务客户端后,对负责 Request 和 Response 对象的 ObjectFactory.java 作一次备份,当使用 MyEclipse 5.x 生成同一个命名空间下的全部 Web 服务客户端之后,手工合并这些备份的 ObjectFactory.java 为最终版本的 ObjectFactory.java 。
建议升级到:
版本:XFire 1.2.6
IDE:MyEclipse 5.5.1 GA
IDE:MyEclipse 5.1GA
JDK:Sun JDK 1.6.0
问题现象:
编制某电信级航空服务客户端时固定地出现以下异常:
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Could not marshall type.
Caused by: javax.xml.bind.JAXBException: com.SomeDomain.SomeObject nor any of its super class is known to this context
问题出现在注入 “XXXXXRequest” 对象并触发 Web 服务的瞬间。
搜索 Google 得不到有帮助的答复,找不到相关的中文资料。之前使用 Axis 1.1 编写的客户端运行正常。
问题原因:
在相同一个源码包内使用 XFire 对同一台服务器上路径相似、命名空间相同的两个 Web 服务生成 Web 服务客户端时,后生成的客户端程序会覆盖前一个客户端程序的 ObjectFactory.java,该 java 文件为 XFire 提供针对 Web 服务所使用的 Request 和 Response 对象的解释,当使用 MyEclipse 5.x 产生客户端时,ObjectFactory.java 只包含最近一次生成的客户端的 Request 和 Response 对象,而覆盖或舍弃了前一次生成的客户端的 Request 和 Response 对象,导致客户端运行时无法解释前一次生成的客户端的 Request 和 Response 对象,从而抛出 XFireFault: Could not marshall type 异常。
解决方案:
每次生成一个 Web 服务客户端后,对负责 Request 和 Response 对象的 ObjectFactory.java 作一次备份,当使用 MyEclipse 5.x 生成同一个命名空间下的全部 Web 服务客户端之后,手工合并这些备份的 ObjectFactory.java 为最终版本的 ObjectFactory.java 。
建议升级到:
版本:XFire 1.2.6
IDE:MyEclipse 5.5.1 GA