在eclipse中配置项目,使其在tomcat中结束;普通的;类加载器
我有两个tomcat web应用程序,它们需要使用singleton共享信息。我已经通过将jared类放在tomcat公共目录中实现了这一点。然后,每个webapp都会获得相同的singleton副本。我想做的是在eclipse中集成这种行为。我希望公共类是一个单独的项目,每当我在eclipse中启动tomcat服务器时,它就会被合并到tomcat公共类加载器中。有人知道如何配置eclipse来实现这一点吗?可能是一种可能性,为了让类加载器在其中搜索,可以通过以下方式:在eclipse中配置项目,使其在tomcat中结束;普通的;类加载器,eclipse,tomcat,Eclipse,Tomcat,我有两个tomcat web应用程序,它们需要使用singleton共享信息。我已经通过将jared类放在tomcat公共目录中实现了这一点。然后,每个webapp都会获得相同的singleton副本。我想做的是在eclipse中集成这种行为。我希望公共类是一个单独的项目,每当我在eclipse中启动tomcat服务器时,它就会被合并到tomcat公共类加载器中。有人知道如何配置eclipse来实现这一点吗?可能是一种可能性,为了让类加载器在其中搜索,可以通过以下方式: 扩展org.apach
- 扩展org.apache.catalina.loader.WebappClassLoader并重写
方法findClassInternal
- 配置Tomcat以使用扩展类加载器。
这是在Tomcat
路径下的相应webapp配置文件中使用以下元素完成的: ...conf/Catalina/hostname
- 或者在固定的预定义路径中
- 或者在类路径中的预定义路径中
在评论中,作者提出了一个更简单的解决方案,利用了Tomcat的优点 然而,委员会: 当您在Eclipse中创建新的Tomcat服务器时,新服务器向导假定影响此新服务器将使用的Tomcat安装的当前行为是不安全的 WTP能够通过使用Tomcat从单个安装运行多个服务器实例的能力来避免影响已安装Tomcat的行为。因此,您创建的每个新Tomcat服务器的默认配置将是与向导中选择的Tomcat运行时关联的Tomcat安装的新服务器实例。
如果您希望Eclipse中的新Tomcat服务器运行的实例与Tomcat安装中的默认批处理文件运行的实例相同,那么当Eclipse中的Tomcat服务器表现不符合预期时,您可能会感到惊讶。 可以更改Tomcat服务器配置,使其运行与Tomcat安装相同的实例
您将在这里找到如何操作。我已经设法让它工作了。以下是我所做的:
- 在eclipse工作区中创建了一个
项目common
- 创建了两个web应用程序,分别称为
和first
,它们应该共享second
项目公共
服务器项目
- 在Servers项目中更改catalina.properties
,并添加行shared.loader=/path to workspace/common/bin
这对发展非常有效。每次创建新构建时,所有内容都是同步的。对于部署,您需要将common
项目转换为common.jar
并将其放置在${catalina.home}/lib
中。Tomcat具有服务器范围的设置,您可以在server.xml中定义自己的全局资源,这些资源可以与所有WebApp共享。您可以使用自己的类,而不是像本例中的整数。但是我不知道如何在Eclipse中使用server.xml和全局lib/目录。