Реализация JMS с использованием JNDI в весеннем приложении - PullRequest
0 голосов
/ 27 сентября 2011

Я пытаюсь реализовать JMS в своем весеннем приложении.Я определил имя JNDI + имя очереди в applicationContext.xml следующим образом:

<bean id="emailQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true">
<property name="jndiName" value="java:comp/env/jms/<<Name of JNDI of connection factory>>" />
</bean>

<bean id="emailQueueDestination" class="org.springframework`enter code here`.jndi.JndiObjectFactoryBean" lazy-init="true">
<property name="jndiName" value="java:comp/env/jms/<<JNDI name of queue>>" />
</bean>

<bean id="emailQueueTemplate" class="org.springframework.jms.core.JmsTemplate" lazy-init="true">
<property name="connectionFactory" ref="emailQueueConnectionFactory" />
<property name="defaultDestination" ref="emailQueueDestination" />
</bean>

<bean id="emailSender" class="<<Package>>.EmailSender" lazy-init="true">
<property name="jmsTemplate">
<ref bean="emailQueueTemplate" />
</property>
</bean>

Теперь мой контроллер выполняет вызов bean-компонента emailSender, используя следующий код:

ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
EmailSender sender =(EmailSender)context.getBean("emailSender");

я получаю исключение: Ошибка 404: Ошибка обработки запроса;вложенным исключением является org.springframework.beans.factory.BeanDefinitionStoreException: IOException при синтаксическом анализе XML-документа из ресурса пути к классу [applicationContext.xml];вложенное исключение - java.io.FileNotFoundException: ресурс пути к классу [applicationContext.xml] не может быть открыт, потому что он не существует

Я загружаю applicationContext.xml при запуске serevr, но мой код не можетнайдите этот файл.

Может кто-нибудь, пожалуйста, помогите. ??

1 Ответ

0 голосов
/ 27 сентября 2011

убедитесь, что файл applicationContext.xml находится в вашем пути к классам, затем добавьте префикс пути к классам, вы можете попробовать что-то вроде этого

   ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml");
...