在Spring MVC控制器中注入Jaxb2Marshaller


问题内容

我试图在我的控制器类中将静态xml转换为POJO(解组)。我正在使用Jaxb2Marshaller,并且在我的 根上下文 中以以下方式进行配置


<oxm:jaxb2-marshaller id="marshaller">
    <oxm:class-to-be-bound name="org.springframework.ws.samples.airline.schema.Airport"/>        
</oxm:jaxb2-marshaller>

我正在尝试使用自动装配功能来注入编组器。但是它抛出 No Bean Found Exception

@AutoWired
private Unmarshaller marshaller;

如何将编组器注入控制器中。还有其他方法或指出我的代码中的错误会有所帮助吗?


问题答案:

Spring上下文配置

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

        <context:annotation-config/>

        <oxm:jaxb2-marshaller id="jaxb2Marshaller">
            <oxm:class-to-be-bound name="your.package.Prova" />
        </oxm:jaxb2-marshaller>

    </beans>

@AutoWired
private org.springframework.oxm.Unmarshaller jaxb2Marshaller;