首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JAXBContext注入spring

将JAXBContext注入spring
EN

Stack Overflow用户
提问于 2011-03-22 13:19:00
回答 3查看 21.8K关注 0票数 19

我正在尝试通过以下方式将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“。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-22 16:32:09

@Tomasz的答案是我推荐的解决方案,但是如果你想坚持使用JAXBContext,那么你的第一个例子失败的原因是static getInstance() method on JAXBContext没有接受单一的Class参数,它接受了它们的可变列表。因此,您需要注入一个列表,而不是单个类:

<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
  <constructor-arg value-type="java.lang.Class">
    <list>
       <value>com.package.MyClassName</value>
    </list>
  </constructor-arg>
</bean>
票数 15
EN

Stack Overflow用户

发布于 2011-03-22 15:19:40

你尝试过Spring OXM吗?最后一行很重要,名称空间仅供参考:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:oxm="http://www.springframework.org/schema/oxm"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-1.5.xsd">

    <oxm:jaxb2-marshaller id="marshaller" contextPath="com.package"/>
</beans>

参见8.4. XML Schema-based Configuration。您还需要在类路径中使用spring-oxm

票数 11
EN

Stack Overflow用户

发布于 2015-03-27 02:03:16

这将解决spring环境中的jaxb.index文件或ObjectFactory问题。提供包的值,其中类是生成xml的类

在此处输入代码`

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
        <property name="packagesToScan" >
            <value>com.adarsh.spring.integration.entities</value>
        </property>
   </bean>`
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5387148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档