Injecter JAXBContext dans spring
je suis en train d'injecter un JAXBContext
dans le contexte d'application du printemps, par:
<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg type="java.lang.Class" value="com.package.MyClassName"/>
</bean>
it Lakes an exception:
Pas de correspondance usine méthode: l'usine de méthode newInstance'
Et j'ai aussi essayer :
<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg type="java.lang.String" value="com.package"/>
</bean>
Et Il déclenche une exception:
javax.XML.lier.JAXBException: "com.paquet" ne contient pas ObjectFactory.de la classe ou de jaxb.index Je n'ai mis un jaxb.fichier d'index à l'intérieur du paquet "COM.paquet "et a une seule ligne "MyClassName" dans le fichier.
3 réponses
la réponse de@Tomasz est la solution que je recommande, mais si vous voulez rester avec JAXBContext
, alors la raison pour laquelle votre premier exemple a échoué est que le static getInstance()
méthode JAXBContext
ne pas prendre un seul Class
argument, il faut un vararg liste d'entre eux. Vous devez donc injecter une Liste, pas une seule classe:
<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>
<?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>
Voir 8.4. XML basés sur les schémas de Configuration. Yu aura aussi besoin de spring-oxm
sur votre chemin de classe.
ceci résoudra le problème pour jaxb.fichier index ou problème ObjectFactory dans l'env.du printemps donnez la valeur du paquet où les classes sont celles qui génèrent le xml
entrer le code ici'
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="packagesToScan" >
<value>com.adarsh.spring.integration.entities</value>
</property>
</bean>`