Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在tomcat中部署的不同web应用程序中访问公共jar中加载的bean_Java_Spring_Tomcat7 - Fatal编程技术网

Java 如何在tomcat中部署的不同web应用程序中访问公共jar中加载的bean

Java 如何在tomcat中部署的不同web应用程序中访问公共jar中加载的bean,java,spring,tomcat7,Java,Spring,Tomcat7,我想知道将共享JAR加载到Tomcat中的最佳方法,以便部署在Tomcat中的两个或更多WAR能够从公共JAR访问SpringBean,而不会出现任何问题 当我在Tomcat中部署多个WAR时,每次部署应用程序时,公共JAR中的bean都会被覆盖。如何配置或加载公共JAR,使部署在Tomcat中的每个应用程序都有自己的bean集,而不覆盖任何其他应用程序bean 我正在从共享路径加载公共JAR。。Tomcat从其lib目录加载jar,然后从共享位置加载jar,然后从WEB-INF/lib[.wa

我想知道将共享JAR加载到Tomcat中的最佳方法,以便部署在Tomcat中的两个或更多WAR能够从公共JAR访问SpringBean,而不会出现任何问题

当我在Tomcat中部署多个WAR时,每次部署应用程序时,公共JAR中的bean都会被覆盖。如何配置或加载公共JAR,使部署在Tomcat中的每个应用程序都有自己的bean集,而不覆盖任何其他应用程序bean


我正在从共享路径加载公共JAR。。Tomcat从其lib目录加载jar,然后从共享位置加载jar,然后从
WEB-INF/lib[.war]
等等。。。我这里的问题是,如何加载在多个web应用程序之间共享的JAR。我还想确保在一个应用程序上下文中加载的Springbean与其他应用程序上下文隔离。

我不确定是否理解您的意思。在JavaWeb中,JAR是根据某种策略由类加载器加载的。如果您的JAR位于tomcat的lib目录中,则部署在此tomcat中的每个应用程序都可以从tomcat lib目录加载这些JAR

如果JAR在您的war包中,那么每个应用程序都将从它自己的war包中加载


在正常情况下,我们不会自己将任何JAR放入tomcat库

我不确定我是否理解你的意思。在JavaWeb中,JAR是根据某种策略由类加载器加载的。如果您的JAR位于tomcat的lib目录中,则部署在此tomcat中的每个应用程序都可以从tomcat lib目录加载这些JAR

如果JAR在您的war包中,那么每个应用程序都将从它自己的war包中加载


在正常情况下,我们不会自己将任何JAR放入tomcat库

谢谢你的回复。我正在从共享路径加载公共JAR。。Tomcat从其lib目录加载jar,然后从共享位置加载jar,然后从WEB-INF/lib[.war]加载jar,等等。。。我这里的问题是,如何加载在多个web应用程序之间共享的JAR。我还想确保在一个应用程序上下文中加载的SpringBean与其他应用程序上下文隔离。对于java web应用程序,每个应用程序都有自己的类加载器,它将从jre_-lib->tomcat_-lib->war_-lib和应用程序类加载所有必要的类。虽然从同一个jar加载的一个类可能在两个web应用中,但它们是两个不同的对象(类对象),并且从这些类创建的实例是不同的类类型。如果只加载了一个类,那么即使jar更新了,也不会再次加载它。另一点是,不同的web应用程序有自己的应用程序上下文,您不能访问或影响其他web应用程序中的其他bean。关于java web应用程序的类加载器,您可以参考以下内容:感谢回复Mavlam。我正在从共享路径加载公共JAR。。Tomcat从其lib目录加载jar,然后从共享位置加载jar,然后从WEB-INF/lib[.war]加载jar,等等。。。我这里的问题是,如何加载在多个web应用程序之间共享的JAR。我还想确保在一个应用程序上下文中加载的SpringBean与其他应用程序上下文隔离。对于java web应用程序,每个应用程序都有自己的类加载器,它将从jre_-lib->tomcat_-lib->war_-lib和应用程序类加载所有必要的类。虽然从同一个jar加载的一个类可能在两个web应用中,但它们是两个不同的对象(类对象),并且从这些类创建的实例是不同的类类型。如果只加载了一个类,那么即使jar更新了,也不会再次加载它。另一点是,不同的web app有自己的应用上下文,您不能访问或影响其他web app中的其他Bean。关于java web app的类加载器,您可以参考以下内容: