java - maven部署到tomcat7上
黄舟
黄舟 2017-04-18 10:18:55
[Java讨论组]

本人用maven构建一个web项目,结构如下:


pom的配置如下:


    4.0.0
    com.iolo
    maven_project
    0.0.1-SNAPSHOT

    
        
        
        4.3.3.RELEASE
        
        1.6.6
        1.2.12
        
        4.12
        
        3.2.1
    

    
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        

        
        
            junit
            junit
            ${junit.version}
            test
        

        
        
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        

        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        

        
        
            org.mybatis
            mybatis-spring
            1.2.0
        

        
        
            mysql
            mysql-connector-java
            5.1.29
        

        
        
            javax
            javaee-api
            6.0
            provided
        

        
        
            javax
            javaee-web-api
            6.0
            provided
        

    

web配置如下



    Archetype Created Web Application
    
    
        index.jsp
    

    
    
        contextConfigLocation
        classpath:application.xml
    
    
    
        webAppRootKey
        springmvc.root
    

    
    
        SpringEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        SpringEncodingFilter
        /*
    

    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:springmvc/spring-mvc.xml
        
        1
    
    
    
        dispatcherServlet
        /
    

    
    
        
        404
        /WEB-INF/errorpage/404.jsp
    
    
        
        405
        /WEB-INF/errorpage/405.jsp
    
    
        
        500
        /WEB-INF/errorpage/500.jsp
    

现在我在eclipse上启用tomcat7服务器,讲项目添加到服务器中启动:

目前控制台报错,Tomcat并没有启动起来:

十一月 10, 2016 2:44:58 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4823)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

十一月 10, 2016 2:44:58 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Skipped installing application listeners due to previous error(s)
十一月 10, 2016 2:44:58 下午 org.apache.catalina.core.StandardContext startInternal
严重: Error listenerStart
十一月 10, 2016 2:44:58 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/maven_project] startup failed due to previous errors

本人的运行环境如图:

是不是因为jdk的问题,可是我环境变量是1.8,看网上是提示少jar包或者冲突,请教各位,帮忙解决一下,谢谢


更新问题:
我更新了spring,javax,改成了新的pom配置




       
     
        
            
               classpath:properties/*.properties
                
            
        
    

    
    
        
        
       
        
            ${jdbc_driverClassName}
        
        
            ${jdbc_url}
        
        
            ${jdbc_username}
        
        
            ${jdbc_password}
        
    

    
    
        
    

    
    
        
          
        
    

    
    
    

就没有出现那个错误,那个错误我个人认为是javax和jdk的版本不一致,然后更新spring的版本,不然还是报错误,具体啥错误我忘了,以及更新Mybatis的版本,不过现在出现了这个错误,网上说是jre的问题,我的mvn是

我是不是版本对应不对,才会出现这个错误
Unsupported major.minor version 52.0

请问各位这个如何解决?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网
 <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
    
    

scope为provided意思是由容器来提供,在maven打包的时候并不会将这两个包打入。遗憾的是tomcat并没有自带这两个包,所以就找不到了。解决方式两种:

  • scope去掉,用默认的compile,在打包的时候会将这两个包打入

  • 换容器,tomcat 有Tomcat Java EE版本,或者glassfish/Jboss

看你提供的代码,似乎没有用到JavaEE的地方,所以我觉得最快的解决方式是将这两个包的依赖直接删除。

巴扎黑

不敢保证回答的对不对.
要确认你的maven项目用的是什么版本的jdk.
项目的:

maven的:

update-------------------------

        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>80</port>  //这里指定你要用的端口
                    <path>/</path>  //这里指定访问是端口后面的项目名.可以`/`表示不带项目名
                </configuration>
            </plugin>
        </plugins>

添加这个以后在你的工程名上右键run as... -> maven build ->

然后点run!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号