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

项目背景: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个回答

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

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

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

youlinmin
大脸猫上神 多谢,虽然并不能解决问题
一年多之前 回复

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

youlinmin
大脸猫上神 多谢
一年多之前 回复

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

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还真是奇葩。。。。。。

咦,为什么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>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!