用于JAXB无setterless集合的getBean中的Spring转换策略 问题:
如何注入包含JAXB生成的列表的bean 细节用于JAXB无setterless集合的getBean中的Spring转换策略 问题:,spring,jaxb,mocking,cxf,Spring,Jaxb,Mocking,Cxf,如何注入包含JAXB生成的列表的bean 细节 这些列表没有设置器 您可以通过 getMyList().getList().add(stuff) 对于标准java集合,您通常依赖spring UTIL,但spring不支持这些JAXB列表。 消息:未找到匹配的编辑器或转换策略 上下文 WSDL优先-CXF服务器 模拟响应从Spring应用程序上下文文件中提取 提示 我不愿意仅仅为了模拟响应而引入第二个JAXB运行时,特别是考虑到这将涉及生成大量新类来建模我的域对象(即,从而复制wsdl2
- 这些列表没有设置器李>
- 您可以通过
getMyList().getList().add(stuff)代码> 对于标准java集合,您通常依赖spring UTIL,但spring不支持这些JAXB列表。
消息:未找到匹配的编辑器或转换策略
- WSDL优先-CXF服务器
- 模拟响应从Spring应用程序上下文文件中提取
我不愿意仅仅为了模拟响应而引入第二个JAXB运行时,特别是考虑到这将涉及生成大量新类来建模我的域对象(即,从而复制wsdl2java生成的对象)。尝试为列表创建一个Bean:
<bean id="list" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="element1" />
<ref bean="element2" />
</list>
</constructor-arg>
</bean>
然后使用a$B语法为内部类创建bean:
<bean id="myList" class="myPackage.MyOuterClass$MyList" >
<property name="list" ref="list" />
</bean>
最后,外部类Bean:
<bean id="myOuterClass" class="myPackage.MyOuterClass" >
<property name="myList" ref="myList" />
</bean>
我的解决方案: 我最终使用了eclipselink MOXy MOXy的选择是由以下特征驱动的
- MOXy允许在CXF生成的类之外声明根元素。这样就没有必要干扰这些类
- MOXy作为一个JAXB实现,在处理JAXB填充列表的方式(没有setter)方面没有问题
- MOXy XPath支持仍然很弱。我需要从整个XML文件(可能的模拟响应列表)中访问一个特定的XML元素(响应),并希望能够基于XPath谓词仅解组此XML文件的一部分,但这还不受支持(在2.5中)。计划为2.6提供支持
- 我没有使用任何Spring JAXB前端作为MOXy的外观,因为我的模拟SEI已经通过Spring注入
- 使用MOXy证明是一种愉快的体验,而且很容易开始
- 我没有经历过MOXy作为JAXB负载jar与CXF将JDK-JAXB实现用于其SOAP层的方式之间的任何冲突