我有四个不同的项目,我使用WebLogic部署我的项目。有几个库(JAR文件),这是所有项目中是常见。目前,每个我的项目都具有 LIB 目录,几乎相同的一组库。现在,是有可能有WAR文件超出此lib目录和访问它们。

有帮助吗?

解决方案

抗蚀剂把jar文件在容器中的“共享”文件夹的诱惑。这是更好地保持他们现在的jar文件。这也许听起来是个好主意,现在使用共享文件夹,但在未来可能需要部署需要共享库的应用程序,但不同的版本。

话虽这么说,我与WebLogic没有经验。在Tomcat中有一个与所有部署的应用程序的公共库的共享文件夹。它不是用这个一个好主意。如果WebLogic可以被配置为每一套应用程序使用一个共享的文件夹(而不是对所有部署的应用程序),你可以去了。

其他提示

你想这样做吗?除非你坚持要部署的空间,我会(也许)建议反对。

为什么呢?此刻的你有4个解决方案上运行关闭这些库。如果你有升级库之一(比方说,如果你发现一个bug,或者您需要一个新的功能),那么你将要测试的所有4个解决方案的兼容性和功能性。如果每个解决方案都有自己的一套库,那么他们的沙盒,你不必将所有4步骤。

请注意,这一切都取决于它是多么容易回归测试解决方案。你可以容易找到它,在这种情况下,使用相同的一组库是可行的。

不要做。

WAR文件整个想法是,它们是自包含单元。这使部署变得更轻松。

此外,其他人已经指出了可能的版本冲突,把jar文件/共享可以对类的知名度非常嵌套的后果。他们将在一个单独的类加载器,并且无法看到WAR文件中的类。如果您使用依赖库的Class.forName()工作(有很多),这有可能会很痛苦。

如果你真的无法承受额外的磁盘空间和内存看看OSGi的或Spring DM。他们已经解决了这个问题,但增加了复杂性的价格。

把所有的共享jar文件下的WebLogic的共同\ lib文件夹。常见\ lib中是由所有已部署的应用程序访问。

那么首先你可以把同一个地方的所有库,让你的构建过程中所需进口的那些。

具有用于在部署新的Weblogic 10具有在每个域中,你可以把共享库lib文件夹。我不认为的Weblogic 10之前这是可能的

您可以把罐子在自己的耳朵文件,并将其部署为一个共享库。

您也可以把在战争的耳和添加共享罐子APP-INF / lib中。这是J2EE的Weblogic的延伸,所以它不会在其他服务器上工作。

我目前使用的另一种方法。

  1. 创建的中央储存库的文件夹,并把所有公共库在那里。
  2. 在每一个项目,您可以创建所有所需的库的参考。在Subversion它与的外部
  3. 每次,当地的工作副本更新时,外部组件更新为,所以你只需要提交到中央文件夹,它会自动分发到所有的项目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top