从EAR项目中的War项目访问EJB项目中的类?

时间:2011-10-15 22:29:28

标签: java eclipse java-ee

我正在创建一个基于MDB的项目和支持这些MDB的类。我还需要使用ServletContextListener与MDB Universe交互(详情如下),这意味着我需要一个WAR项目。

问题:ServletContextListener如何访问EJB项目中的类?

项目组织(标准Eclipse EAR项目):

EAR项目   里面有一些罐子 EJB项目   有一些MDB和MDB使用的许多其他类 WAR项目   有ServletContextListener。

为什么我这样做?我需要在项目启动时启动一个线程。该线程需要访问MDB所使用的一堆类。

注意:我知道我可以将这些常用类放入EAR项目的jar中。如果有一种方法可以做到这一点,那么单个日食“调试为” - >“在服务器上”则会构成一个很好的解决方案。无论提供什么解决方案,都需要在服务器上支持该调试,并对所有类进行步调试。

注意2:我可以告诉Eclipse,WAR项目依赖于EJB项目,它删除了Eclipse错误标志,但是eclipse显示了一个警告,这个依赖项将不会存在于已部署的项目中,这意味着我的类可以从WAR将无法在运行时实例化。

1 个答案:

答案 0 :(得分:1)

在Java EE服务器上进行“标准”部署(意思是:使用默认的类加载器策略),WAR类“可以看到”封闭EAR中的所有内容,并且EAR类优先。

  

我可以告诉Eclipse,WAR项目依赖于EJB项目

你不是反过来做的吗?这是EAR项目,需要在项目的“属性 - >部署程序集”部分中包含WAR项目。

另一种可能的想法是,您可能正在尝试部署非Java EE服务器,如Tomcat,它不支持EAR。这可能就是为什么Eclipse说在部署的项目中不存在依赖关系。