问题描述:应用在tomcat上运行没有问题,在weblogic报错。
原因1
观察日志的最后一行,不要自动换行,异常一般会嵌套很多层,看到最后一层应该就是问题的源头,这次找到的问题原因是org.joda.time.DateTime 包冲突了,解决办法是
在weblogic.xml 中加入
<container-descriptor><show-archived-real-path-enabled>true</show-archived-real-path-enabled><prefer-application-packages><package-name>antlr.*</package-name>......<package-name>org.slf4j.*</package-name></prefer-application-packages></container-descriptor>
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.yinhai.dexg.jobscheduler.service.impl.JobSchedulerServiceImpl]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.joda.time.DateTime.<init>(IIIII)V
原因2 缺少jstl 和standard,在tomcat不用引入这两个也能正常启动。这两个错误的表现是
java.lang.ClassNotFoundException: org.apache.taglibs.standard.tag.rt.sql.SetDataSourceTagweblogic.application.ModuleException: java.lang.ClassNotFoundException: org.apache.taglibs.standard.tag.rt.sql.SetDataSourceTag
<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>