maven命令编译 与 eclipse插件编译,registered the JDBC driver * but failed to unregister it

背景:Java开发的maven项目,一直都是用eclipse 的export导出war包,然后在Tomcat上部署的,想把编译写成工具,就安装了apache-maven,使用maven命令行进行编译。结果:eclipse导出的war包,可以正常运行,但是 maven命令编译的war包,运行报错:

严重: The web application [/data-quality] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] 
but failed to unregister it when the web application was stopped. 
To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

处理过程:

第一步:

    报错了,首先就是百度,搜索这个错误,很多人说是Tomcat7 增加了内存泄漏检测监听器,在 server.xml 中,将监听器注释掉就行。

  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

注释掉,启动还是不行。

有说Tomcat版本,降到6的,有说将jdbc的包,放到Tomcat 的lib目录下的,还有的是数据库连接配置写错的,当然这是别人遇到的问题,都不是我这里的情况。

第二步:

    因为项目一直是这样编译运行的,就感觉不是Tomcat的问题,也不是项目的问题,就用 eclipse 编译的war包,与 maven命令编译的war包,在同一个Tomcat部署目录下,进行试验,发现 eclipse 编译的包,运行没问题,maven命令编译的包,报错。用比较工具比较两个war包,class都是一样的,只有 META-INF目录下 pom.property 不一样,不一样的地方,还是 编译者不一样,一个是 maven-compiler插件,一个是 Tomcat-maven。很奇怪,就在网上搜 maven命令编译与eclipse 插件编译有什么区别,也没找到。

第三步:

开始只关注编译出来的文件,哪些有差异,但是没有在意pom.property文件,就是只发现他们两个文件不一样,但是没在意。没找到 命令编译和插件编译的区别, 突然就在想,会不会就是这个pom.property文件导致的?然后就是找了之前 使用命令编译的项目,发现 pom文件配置build属性不一样。改了之后,果然 编译的war包可以运行了,虽然还不明白为什么~~

 

总结:本次运行不通过,如果不是一个已经成熟的项目,真的会怀疑 Tomcat的问题?配置的问题?数据库的问题?到最后发现都不是。。。pom配置,也挺重要的。

 

命令编译配置:

  <profiles>  <!-- 配置版本 -->
    <profile>
      <id>jdk1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
  </profiles>
  
  <build>  <!-- 配置 resource,要编译的文件 -->
    <finalName>test</finalName>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>version/*</exclude> <!-- 不包含的文件 -->
            </excludes>
        </resource>
    </resources>
  </build>

 

插件编译配置:

  <build>
    <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8088/manager/text</url>
                    <server>tomcat</server>
                    <username>tomcat</username>
                    <password>tomcat</password>
                    <uriEncoding>UTF-8</uriEncoding>
                    <path>/${finalName}</path>
                    <port>9002</port>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <warName>${project.artifactId}-${project.version}</warName>
                </configuration>
            </plugin> 
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc14</artifactId>
                        <version>10.2.0.1.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.6</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
        <defaultGoal>install</defaultGoal>
  </build>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值