Spring 구성을 사용하여 JMS 구성 요소를 배우기위한 명확하고 명확한 예제를 찾을 수 없습니다. 그래서 내가 이런 걸 쓴 :Camel JMS 구성 요소 (Weblogic 서버에서 Spring 포함)
<bean id="weblogic" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="jmsConnectionFactory"/>
</bean>
<bean id="jmsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://${ip}:${port}</prop>
</props>
</property>
</bean>
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jmsJndiTemplate"/>
<property name="jndiName" value="jms/cdrPreMO-connfact-jndi"/>
</bean>
<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
<camel:endpoint id="jmsQueue" uri="weblogic:queue:jms/cdrPreMO-queue-jndi"/>
<route>
<from ref="jmsQueue"/>
<bean ref="test" method="writeFile"/>
<to uri="log:errors?level=ERROR"/>
</route>
</camelContext>
을하지만 예외 제공 :
Caused by: javax.naming.NameNotFoundException: Unable to resolve 'weblogic.jms.backend.jms'. Resolved 'weblogic.jms.backend'; remaining name 'jms'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:393)
at weblogic.jms.frontend.FEManager.destinationCreate(FEManager.java:287)
... 8 more
JMS 컨퍼런스가 참 (IP 포트 및 JNDI 이름). 연결이 끊어지고 세션이 있지만 예외가 발생합니다 누군가 내 실수를 말해 줄 수 있습니까?
탄원
편집 : Claus의 의견에 따라 수정.
답변 해 주셔서 감사합니다. 정말로 유용한 정보입니다. 그러나 예외는 여전히 동일합니다. 여전히 말합니다 : 원인 : javax.naming.NameNotFoundException : 'weblogic.jms.backend.jms'를 확인할 수 없습니다. 해결 된 'weblogic.jms.backend'; 나머지 이름은 'jms' – Neron
그런데 패키지 이름 weblogic.jms.backend.jms가 어디서 왔는지 알 수 없습니다. 문제는 weblogic jar 자체에 관한 것일 수 있습니다. – Neron
예, JNDI 조회가 어려워서 작동하지 않을 수 있습니다. weblogic 서버에 "jms/cdrPreMO-queue-jndi"라는 큐 이름이 있습니까? stacktrace가 JMS 대상을 찾고/작성하는 것 같습니다. –