我正在尝试将JAXBContext
注入到spring应用程序上下文中,方法是:
<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg type="java.lang.Class" value="com.package.MyClassName"/>
</bean>
它抛出一个异常:
找不到匹配的工厂方法:工厂方法'newInstance'
我也试着:
<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg type="java.lang.String" value="com.package"/>
</bean>
它抛出一个异常:
javax.xml.bind.JAXBException:“com.package”不包含ObjectFactory.class或jaxb.index我确实在“com.package”包中放置了一个jaxb.index文件,并且在文件中有一行“MyClassName”。
3条答案
按热度按时间lyr7nygr1#
@Tomasz的答案是我推荐的解决方案,但是如果你想坚持使用
JAXBContext
,那么你的第一个例子失败的原因是static getInstance()
method onJAXBContext
没有接受一个Class
参数,它接受了一个变量列表。所以你需要注入一个列表,而不是一个类:amrnrhlw2#
你试过Spring OXM吗?最后一行很重要,命名空间仅供参考:
请参见8.4.基于XML架构的配置。Yu还需要在类路径上使用
spring-oxm
。k3bvogb13#
这将解决jaxb.index文件的问题或springenv中的ObjectFactory问题。提供生成xml的类所在的包的值