HI, 我有使用jaxws互相调用的webservices。 问题是我传递了compex对象,类。每次我得到的对象都属于另一个包(proxy1.jaxs.myClass ...)所以我必须先写入转换器。是否有一种简单的方法在代理对象,origanl对象或另一个代理对象之间进行转换? 谢谢,希望我解释自己。
答案 0 :(得分:1)
Dozer非常好,如果类相似,你甚至可以在没有复杂的XML配置的情况下逃脱。但请记住,您必须单元测试Dozer映射,因为它适用于反射,您必须确保所有字段都已正确映射。
XSLT - 如果你只传递没有任何逻辑的对象,那么在SOAP XML级别上进行简单的转换就可以了吗?
答案 1 :(得分:1)
我想您希望在客户端重用自己的Java Bean,而不是使用JAX-WS / JAX-B生成的工件。
解决方案是向JAX-B指定要使用特定类来表示bean。看看JAX-B Bindings,解决方案应该如下:
<jxb:bindings schemaLocation="YourService_schema1.xsd" node="/xs:schema">
<jxb:bindings node="//xs:complexType[@name='yourType']">
<jxb:class ref="com.myoriginalpackage.YourType">
</jxb:class>
</jxb:bindings>
此页面上还有其他用于处理特定Java类型的示例: http://confluence.highsource.org/display/HJ3/Apache+CXF+Tutorial+-+Building+JAX-WS,+JAXB+and+JPA-based+web+service+with+Apache+CXF,+Spring+and+Hyperjaxb3