求助:Execution of JMS message listener failed!!

wangchunping11 2009-11-06 02:52:44
这个问题困扰我很长时间了 而且这个错误偶尔会出现 请各位大哥大姐不吝赐教 万分感谢!!!
现在我还没有分 等有分 加倍奉送 。

15278725 - Refreshing org.springframework.context.support.FileSystemXmlApplicati
onContext@66bdca8: display name [org.springframework.context.support.FileSystemX
mlApplicationContext@66bdca8]; startup date [Fri Nov 06 14:13:18 GMT+08:00 2009]
; root of context hierarchy
15278725 - Loading XML bean definitions from file [/weblogic/bea/user_projects/d
omains/caicprod_7601_domain/jms-config-xfk.xml]
15278844 - Execution of JMS message listener failed
15278846 - Setup of JMS message listener invoker failed - trying to recover
java.lang.NoClassDefFoundError: org/springframework/core/NestedExceptionUtils
at org.springframework.core.NestedRuntimeException.getMessage(NestedRunt
imeException.java:93)
at java.lang.Throwable.getLocalizedMessage(Throwable.java(Inlined Compil
ed Code))
at java.lang.Throwable.toString(Throwable.java(Compiled Code))
at org.apache.log4j.spi.VectorWriter.println(ThrowableInformation.java:8
8)
at org.springframework.core.NestedRuntimeException.printStackTrace(Neste
dRuntimeException.java:120)
at org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(Throwabl
eInformation.java(Inlined Compiled Code))
at org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.jav
a(Inlined Compiled Code))
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java(Compile
。。。。

以下是我的配置文件jms-config-xfk.xml的内容:
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<!-- JNDI上下文模板 -->
<bean id="jndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<!-- ip 地址 -->
<prop key="java.naming.provider.url">-----</prop>
<prop key="java.naming.factory.initial">
org.jnp.interfaces.NamingContextFactory
</prop>
<prop key="java.naming.factory.url.pkgs">
org.jboss.naming:org.jnp.interfaces
</prop>
</props>
</property>
</bean>

<!-- 连接工厂配置-->
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>ConnectionFactory</value>
</property>
<property name="jndiTemplate">
<ref bean="jndiTemplate" />
</property>
</bean>


<!-- 队列目标配置 -->
<bean id="XFKForQueue"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="jndiTemplate" />
</property>
<property name="jndiName">
<value>queue/CardPRPSINOToSYS</value>
</property>
</bean>
<!-- 队列目标配置 -->


<!-- 监听目标配置 -->
<bean id="XFKForListener"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="jndiTemplate" />
</property>
<property name="jndiName">
<value>queue/CardPRPSYSToSINO</value>
</property>
</bean>
<!-- 监听目标配置 -->


<!-- 消息转换 -->
<bean id="jmsConverter"
class="org.springframework.jms.support.converter.SimpleMessageConverter" />

<!-- JMS Queue template配置 -->
<bean id="jmsQueueTemplateXFK"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="jmsConnectionFactory" />
</property>
<property name="defaultDestination">
<ref bean="XFKForQueue" />
</property>
<property name="messageConverter">
<ref bean="jmsConverter" />
</property>
</bean>

<!-- 消息监听类 -->
<bean id="JmsMessageListenerXFK"
class="jms.util.listener.JmsMessageListenerXFK" />

<!-- 消息监听容器类 -->
<bean id="jmsQueueContainerXFK"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="XFKForListener" />
<property name="messageListener" ref="JmsMessageListenerXFK" />
</bean>

<!-- 自封装工具类配置 -->
<bean id="jmsExecuteTemplate"
class="jms.util.template.JmsExecuteTemplate">
</bean>
</beans>


...全文
1860 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl3450341 2009-11-08
  • 打赏
  • 举报
回复
帮你顶顶
wangchunping11 2009-11-08
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的区别

这2个东西应该是java里很常见,很简单,他们都和classpath设定有关,但区别在哪里呢? 我们都知道java里生成对象有如下两种方式:
1:Object obj = new ClassName(); 直接new一个对象
2:Class clazz = Class.forName(ClassName);
Object obj = clazz.newInstance(); 通过class loader动态装载一个类,然后获取这个类的实例

同样是生成对象,1在编译期间检查classpath, 如果没有类定义,编译没法通过。而2在编译期间是不会检查的,不过需要抛出或者自己catch ClassNotFoundException。运行期间,如果1编译时依赖的类不在classpath中(导致classloader装载失败),此时抛出的异常就是 NoClassDefFoundError。而如果2在运行期间需要装载的类不在classpath中,抛出的则是 ClassNotFoundException。
wangchunping11 2009-11-06
  • 打赏
  • 举报
回复
我先顶下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧