youlinmin
大脸猫上神
采纳率100%
2018-01-24 13:29

多环境下eclipse如何配置tomcat加载指定properties文件

5

项目背景:maven项目,有多个环境:dev、sit、uat、pat。之前用的Idea和jetty,现在因项目需要切换成了eclipse和tomcat。
问题描述:maven打的是sit的包,war包放到tomcat下单独运行没有问题,但是用eclipse内置的tomcat启动就会报错,我看了项目根目录下.metadata.plugins\org.eclipse.wst.server.core\里的webapps项目文件,发现每次启动服务加载的都是dev.properties文件,但是之前maven打的war包里面是sit.properties文件呀,tomcat怎么又重置成dev了呢?eclipse里该怎么配置tomcat让它跟随环境加载.properties文件呢?有木有大神和我遇到的是同一个问题?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • qq_37928448 qq_37928448 3年前

    这了可以用maven的打包命令实现,再加上pom文件的配置

    点赞 评论 复制链接分享
  • youlinmin 大脸猫上神 3年前

    咦,为什么step1和step3中的pom配置代码段格式给我转换没了呢,再发一次试试:

     1、项目pom文件中添加插件tomcat-maven-plugin,配置如下:
           <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/helloworld</path>
                        <port>8888</port>
                        <uriEncoding>UTF-8</uriEncoding>
                    </configuration>
                </plugin>
    
     3、pom文件找到servlet-api,添加scope,配置如下:
    
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    
    点赞 评论 复制链接分享
  • youlinmin 大脸猫上神 3年前

    多谢各位大神的回复,问题解决了,辛酸路程如下,真是一步一个坑:

    1、先在项目pom文件中添加插件tomcat-maven-plugin,配置如下:

    org.apache.tomcat.maven
    tomcat7-maven-plugin
    2.2

    /helloworld
    8888
    UTF-8


    2、maven运行tomcat命令:tomcat:run,profiles选择sit,本来以为这次就好了,结果又报错:
    严重:Exception starting filter encodingFilter
    java.lang.ClassCastException:org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
    解决办法:
    tomcat-maven-plugin中的jar包与项目pom文件里的jar包冲突了,pom文件找到servlet-api,添加scope,配置如下:

    javax.servlet
    servlet-api
    2.5
    provided

    3、再次启动服务,心想这次应该OK了吧,结果尼玛又报错:找不到jndi数据源
    解决办法:
    在项目/target/tomcat/conf目录下添加配置好数据源的context.xml和server.xml文件
    4、再次启动服务,这次应该没报错了吧,结果又一次失望了,又报warning了:
    [INFO] Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/tomcat-maven-plugin/maven-metadata.xml
    [WARNING] Could not transfer metadata org.codehaus.mojo:tomcat-maven-plugin/maven-metadata.xml from/to central (https://repo.maven.apache.org/maven2)
    Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.24.215] failed: Connection timed out:connect
    ......
    ......
    一月 25,2018 3:05:49 下午 org.apache.coyote.http11.Http11Protocol init
    信息:Initializing Coyote HTTP/1.1 on http-8888
    一月 25:2018 3:05:49 下午 org.apache.coyote.http11.Http11Protocol start
    信息:Starting Coyote HTTP/1.1 on http-8888

    tomcat启动到这里,就停在这里不动了。。。。。

    解决办法:把maven命令tomcat:run改为tomcat7:run。再运行就好,tomcat7还真是奇葩。。。。。。

    点赞 评论 复制链接分享
  • open_yu open_yu 3年前
    点赞 评论 复制链接分享
  • open_yu open_yu 3年前

    参考一下,或许对你有帮助

    点赞 评论 复制链接分享
  • u011457462 cfs海阔天空 3年前

    可以使用maven管理项目,在pom.xml文件中配置

    点赞 评论 复制链接分享
  • sinat_39495176 sinat_39495176 3年前

    首先你要准备多个tomcat,随意你配置多少个。操作方式是:右键项目名称-->Properties-->找到Targeted Runtimes 里面就显示的是你配置的tomcat了。你如果想要让tomcat同时在eclipse上运行的话,你需要配置不同的端口号。

    点赞 评论 复制链接分享

相关推荐