Pessoal estou com um problema e ao que tudo indica é configuração do projeto. Tenho um projeto que usa spring com jms, carrego os beans pelo org.springframework.context.ApplicationContext.getBean(), o problema é que este projeto foi empacotado em um jar e uso este jar em outro projeto que roda no Jboss, quando tento usar o bean através desse da aplicação que está rodando no jboss ocorre o erro abaixo:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.
obs: lembrando que se eu tento usar o bean por um junit, ele não dá esse erro, alguém pode ajudar ???
O que tem na linha 9 do seu XML applicationContext.xml?
Na linha 9 tem isso…
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
[quote=toredobud]Na linha 9 tem isso…
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
[/quote]
Não, com certeza não é isso. Isso faz parte da tag <beans …> que acho que é a 1ª ou 2ª linha do arquivo.
Posta o arquivo todo se possível.
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:annotation-config/>
<context:property-placeholder location="interface_sap.properties"/>
<context:component-scan base-package="br.com.ipd.fenix.itf.sap.jms.configuration"/>
<context:component-scan base-package="br.com.ipd.fenix.itf.sap.jms"/>
<context:component-scan base-package="br.com.ipd.fenix.itf.sap.teste"/>
<tx:annotation-driven transaction-manager="jmsTransactionManager"/>
</beans>
Pelo que vi, você está usando JMS na sua aplicação, conforme essa linha: <tx:annotation-driven transaction-manager="jmsTransactionManager"/>
Então acho que você precisa criar um bean referente ao jmsTransactionManager, conforme a configuração que está usando.
tipo algo assim:
<bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
Eu não estou usando transaction na aplicação, removi todos as tags relacionadas a transaction do xml.
Porém ainda não resolvi o problema, o erro agora é esse:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'producer': Autowiring of fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public org.springframework.jms.core.JmsTemplate br.com.ipd.fenix.itf.sap.jms.Producer.jmsTemplate; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.jms.core.JmsTemplate] is defined: Unsatisfied dependency of type [class org.springframework.jms.core.JmsTemplate]: expected at least 1 matching bean
Estou usando a annotation @Autowired sobre o jmsTemplate e durante a leitura do applicationContext.xml ocorre esse erro. Alguém sabe oq pode estar acontecendo ???
To com um problema muito parecido.
Tenho um projeto configurado com Spring com o uso de @Autowired funcionando perfeitamente. No entanto, quando empacoto esse projeto num jar e uso como dependência em outro projeto a injeção não funciona.
Alguém sabe como resolver?
Obrigado.