java servletlis_WEB.XML中Lisenter与Servlet的加载顺序

问题描述:

同事在测试环境升级一个定时任务的listener后,启动系统出现找不到数据源的错误。

DBDataSource platformDataSource has not registed !

分析过程:

去掉这个listener后,程序可以正常启动。数据源也可以正常连接。说明中间件的数据源配置没问题。

问题出在新添加到监听上。仔细看过这个新添的监听,发现这个listener用到了数据源。

而litener在加载时数据源还没有建立连接。所以出现数据源找不到的错误。

解决办法:

由于listener优先与servlet加载。而无法在web.xml中指定listener的加载顺序。

只好将listener改为servlet,并在web.xml中指定此servlet最后加载。

9,问题解决。

错误日志:

**** DBDataSource platformDataSource has not registed! java.lang.IllegalArgumentException: **** DBDataSource platformDataSource has not registed! at com.sinosoft.sysframework.reference.DBFactory.getDB(DBFactory.java:180) at com.sinosoft.sysframework.reference.DBManager.getDataSource(DBManager.java:42)at com.sinosoft.sysframework.reference.DBManager.open(DBManager.java:62)at com.sinosoft.platform.bl.facade.BLUtiPlatConfigFacadeBase.findByPrimaryKey(BLUtiPlatConfigFacadeBase.java:132)at com.sinosoft.platform.ui.model.UtiPlatConfigFindByPrimaryKeyCommand.executeCommandStringStringImpl(UtiPlatConfigFindByPrimaryKeyCommand.java:42)at com.sinosoft.platform.ui.model.UtiPlatConfigFindByPrimaryKeyCommand.executeCommand(UtiPlatConfigFindByPrimaryKeyCommand.java:75)at com.sinosoft.sysframework.web.model.BaseCommand.commandFacade(BaseCommand.java:13)at com.sinosoft.sysframework.web.model.BaseSLSBCommandServerDelegate.execute(BaseSLSBCommandServerDelegate.java:9)at com.sinosoft.sysframework.web.model.BaseCommand.execute(BaseCommand.java:9)at com.sinosoft.datacheck.util.TaskManager.getStartDateTime(TaskManager.java:56)at com.sinosoft.datacheck.util.TaskManager.contextInitialized(TaskManager.java:25)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3854)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:732)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:592)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值