OEM12c 安装配置MySQL Plug-in用来监控MySQL

      最近在研究J2EE开发,中间碰到不少问题,于是写下此文,用于记录这个过程,并为其他与我一样在路上的朋友提供参考,随着时间的推移,此文将不断补充完善

  • 通过Server视图启动TOMCAT提示错误:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3770)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)

造成问题的原因至今不明确,我是用STS进行开发,原想将项目拆成多个MAVEN项目,总有点问题后暂时放弃又合起来了,之后就一直这样,什么CLEAN啊之类的操作都试过,一直没有解决。

从这错误的现象来看是因为找不到org.springframework.web.context.ContextLoaderListener这个类,这个类在WEB.XML配置引用。

碰到这个问题我首先想是不是因为中间折腾过几次项目,造成了编译的问题,于是执行MAVEN CLEAN,然后MAVEN INSTALL,再把SERVER删除重新来,但是问题依旧。于是我又新建一个全新项目发布到TOMCAT,一切正常,操作时发现有一个特点,如下图:

 

图1

图中myproject是我出问题的项目,mytest1是我新建的测试项目,新建的项目在添加发布时多一个spring-web的JAR包依赖,于是我打开两个项止的.classpath,发现出问题的项目少了一句话

正常的项目如下

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
   <attribute name="maven.pomderived" value="true"/>
   <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
 </classpathentry>

问题项目如下

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
   <attribute name="maven.pomderived" value="true"/>
  </attributes>
 </classpathentry>

于是把<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>给加上,进入开STS刷新,然后再进入到图1界面,这下myproject也有了spring-web引用了。

按正常的发布流程发布,一切正常。

 

 

  • Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource‘ defined in class path resource [spring-mybatis.xml]: Invocation of init method failed; nested exception is java.sql.SQLException: oracle.jdbc.driver.OracleDriver
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
 at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
 ... 53 more
Caused by: java.sql.SQLException: oracle.jdbc.driver.OracleDriver
 at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:500)
 at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:382)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1612)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1553)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
 ... 60 more
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
 at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:494)
 ... 68 more

 

笔者在做一个MAVEN+SPRING+MYBATIS+ORACLE整合时碰到这个问题,单元测试SERVICE一切正常,但是发布到TOMCAT7时出现这个错误。

从这个错误的现象来看是ORACLE驱动的OJDBC没有一起发布,我原来在POM.XML文件是这么写的

<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc6</artifactId>
   <version>11</version>
    <scope>system</scope>
   <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath> 
  </dependency>

其实这个问题非常明显,原因就是通过这样SYSTEMPATH方式引用造成的,其实MAVEN可以引用本地JAR包,但需要自己去单独发布,为了省事,你也可以将JAR包导入到本地库中,方法是在MAVEN的BIN目录下用命令行执行如下语句

mvn install:install-file -Dfile=E:\J2EE\jar\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11 -Dpackaging=jar

具体的参数内容根据自己的情况修改,执行完一般就好了。

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。