java-如何在Tomcat中定义上下文加载的顺序,或在上下文之间定义一些依赖关系层次结构?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何在Tomcat中定义上下文加载的顺序,或在上下文之间定义一些依赖关系层次结构?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1883字,纯文字阅读大概需要3分钟。
内容图文
假设我有两个要在Tomcat 6中部署的Web应用程序,可以说是A.war和B.war.有没有一种方法可以在重新启动时强制Tomcat:
>在A之前加载B?要么
>在其他所有内容之后都加载A?要么
>使A仅在B加载后才可加载-即,使B成为A的依赖项?
这些是问题.下面是一个可能太复杂但也非常有用的背景.
背景
我正在尝试在Liferay中部署一些portlet.这些portlet是由对Liferay的工作原理不甚了解的人制作的遗留代码,可以说是“令人惊奇的”决策,例如将Liferay Service Builder实体表映射到新类.实际上,这并不过分,但是了解Liferay的人可能会更好地理解我的观点.
这些portlet由Spring缝合,并由Hibernate映射到数据库.为了避免编辑context.xml的烦人需求(这很烦人,容易出错,容易忘记,使持久层慢到地狱等),我提供了Liferay数据源作为新bean.
<bean id="liferayDataSource"
class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource">
<bean
class="com.liferay.portal.kernel.util.InfrastructureUtil"
factory-method="getDataSource" />
</property>
</bean>
…并使用此新bean作为实体管理器工厂的数据源:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="liferayDataSource"/>
<property name="persistenceUnitName" value="liferay-db" />
</bean>
如果我正在运行Liferay并部署了Portlet,则它可以正常运行,因为Liferay资源已经可用.问题是,当我重新启动Liferay时,这些Portlet在Liferay应用程序启动之前就已加载,因此InfrastructureUtil类甚至都没有加载.因此,我想推迟portlet的加载.
我注意到每个应用程序在$CATALINA_HOME / temp /下都有一个目录,通常称为0-this-annoying-portlet,2-that-weird-portlet等.我相信开头的数字决定顺序,因为它强制按字母顺序对应用程序进行排序.真的吗?我可以设定这个号码吗?
当然,我接受任何解决方案,但我真的对在Tomcat中定义应用程序加载顺序的可能性感到好奇.
解决方法:
也许这会有所帮助
Which Tomcat 5 context file takes precedence?
内容总结
以上是互联网集市为您收集整理的java-如何在Tomcat中定义上下文加载的顺序,或在上下文之间定义一些依赖关系层次结构?全部内容,希望文章能够帮你解决java-如何在Tomcat中定义上下文加载的顺序,或在上下文之间定义一些依赖关系层次结构?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。