这仍是一个悬而未决的问题。希望有一天我能得到答案。感谢所有回复的人。
我的问题很简单。如何在Hibernate XML配置文件中使用$ {catalina.home}或$ {catalina.base}属性?
这是我的示例配置文件:
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">false</property>
<property name="cache.use_second_level_cache">false</property>
<mapping jar="/opt/tomcat/apache-tomcat-5.5.29/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />
</session-factory>
我当前的配置文件没问题。但我想至少抽象出tomcat的位置。而不是使用它:
<mapping jar="/opt/tomcat/apache-tomcat-5.5.29/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />
我想将其转换为:
<mapping jar="${catalina.base}/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />
我尝试直接这样做,但我得到一个错误,即jar文件丢失或无法找到。我用谷歌搜索但无济于事。
我之所以需要这样的设置,是因为我在三台机器中部署了我的应用程序。一个是生产。另一个是发展。最后一个是localhost(在家里)。这三台机器在三个不同的位置安装了tomcat。
因此,每次部署应用程序时,我都必须修改 /opt/tomcat/apache-tomcat-5.5.29 / 行以匹配计算机上的tomcat位置。
有什么想法吗?
另外,使用catalina.home或catalina.base是否优先?我只在localhost上使用一个tomcat。但在开发和生产方面,我们有两只雄猫(当然在两个不同的位置)。
由于
顺便说一句,这个Hibernate配置文件在Spring XML配置文件中使用:
<bean id="appSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="appDataSource"/>
</property>
<property name="configLocation">
<value>${hibernate.config}</value>
</property>
</bean>
答案 0 :(得分:1)
你不需要这个。假设JAR位于应用程序类路径上(这是WAR的/WEB-INF/lib
目录下的JAR的情况),只需使用:
<mapping jar="myapp.jar" />