我对Tomcat有一个非常奇怪的问题,我似乎无法修复。我的问题是,似乎Tomcat将Tomcat文件夹(C:/ Program Files / Apache Software Foundation / Tomcat 6)视为类路径。当我将JAVA_OPTS设置为引用我的属性文件时,此问题生效。
-Ddoiadmin.properties.file=doiadmin.properties
我的classpath(WEB-INF / classes)中有属性文件但是当我启动Tomcat时,我收到错误:
com.XXXXX.commons.servicecore.ServiceConfigurationException: Could not find main properties file (directly or on classpath): [doiadmin.properties]
使应用程序正常启动的唯一方法是将属性文件放在Tomcat文件夹中。这很烦人,从长远来看,这不是我想做的事情。
我搜索了互联网并要求一些人无济于事。有没有人有任何建议?
感谢您的帮助 -Tim
答案 0 :(得分:1)
如果我理解正确,我会这样做:
在你的web.xml中有以下内容:
<env-entry>
<env-entry-name>RootPathPropertyName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>uk.co.foo.project.path</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>RootPathPropertyValue</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>d:/foo/bar</env-entry-value>
</env-entry>
在您的上下文中,按如下方式设置PlaceHolderConfigurer:
<!-- Properties Configuration -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1"/>
<property name="locations">
<list>
<value>file:${uk.co.foo.project.path}/config/foo.properties</value>
</list>
</property>
</bean>
在tomcat配置中,您可以使用/conf/Catalina/localhost/foo.xml文件中的以下内容覆盖默认位置:
<Context path="foo" >
<Environment name="RootPathPropertyValue" value="c:/foo/bar" type="java.lang.String" override="false"/>
</Context>