【发布时间】:2014-03-27 17:16:02
【问题描述】:
为了在单个 WebLogic 服务器上部署相同的 EAR 应用程序两次,我必须做什么?
我的申请中有什么:
- EJB 层 (EJB 2.0)
- WEB 层(Struts、jsp)
- 日志记录层 (log4j)
- DB 层(Oracle,在 WLS 中创建的数据源)
- WLS 10.3.0
我需要什么:
- WLS 上同一应用程序的两个实例(每个应用程序的唯一 URL(上下文根)),每个实例应使用其他数据源并应具有不同的配置
我的问题是什么?我不知道我必须在我的应用程序中更改哪些内容才能实现我的目标:
- 应用程序的配置基于许多属性文件,这些文件位于一个添加到 WLS 类路径的目录中(它们不在 EAR 文件中)
- 许多类是静态的(类中的所有方法都是静态的)
- 每个类中的静态记录器实例
- JNDI 对象呢?我应该为数据源、会话/实体 bean 等使用不同的名称吗?
- jsp 文件中的上下文根和超链接呢?
编辑
我需要两个具有唯一名称和唯一上下文根的不同 EAR 文件。每个应用程序都将连接到唯一的数据源并具有唯一的配置。
我对我的应用程序的更改有一些疑问:
- 我的类中的静态方法怎么样? WLS 文档说每个应用程序都有自己的类加载器层次结构。我应该害怕冲突吗?我在客户端和服务器 (EJB) 部分都有静态数据。
- EJB 名称呢?每个应用程序都应该有唯一的名称吗?我应该害怕 JNDI 树中的冲突吗?我使用
lookup方法。 - 我的课程中的静态记录器怎么样?我可以在
weblogic-application.xml中使用prefer-application-packages标签来避免冲突吗?
非常感谢您的帮助。
【问题讨论】:
-
这个问题真的很令人困惑......部署同一个应用程序两次只是为了使用不同的数据源似乎是非常糟糕的做法。为什么不只是有两个不同的线程?您是否尝试过某些事情并遇到错误?只要它们的名称不同,您就可以在技术上部署两次
-
第一篇文章已编辑。有什么想法吗?
标签: java deployment ejb weblogic ear