【发布时间】:2015-07-21 18:21:16
【问题描述】:
我尝试将以下代码作为 EJB 部署到 WebLogic 12c,但出现错误:
“部署 EJB GeopoliticalServiceBean 时出错(应用程序: campaigner-ejb,EJBComponent:campaigner-service.jar),JNDI 名称 java:global/campaigner-ejb/campaigner-service/GeopoliticalServiceBean!com.dr_dee_sw.campaigner.service.GeopoliticalServiceLocal 已在使用中。您必须在 weblogic-ejb-jar.xml 部署描述符或对应注解 在部署此 EJB 之前。”
public interface GeopoliticalService
{
...
}
@Local
public interface GeopoliticalServiceLocal extends GeopoliticalService
{
}
@Remote
public interface GeopoliticalServiceRemote extends GeopoliticalService
{
}
@TransactionManagement(value = TransactionManagementType.CONTAINER)
@TransactionAttribute(value = TransactionAttributeType.REQUIRED)
@Stateless
public class GeopoliticalServiceBean implements GeopoliticalServiceLocal,GeopoliticalServiceRemote
{
...
}
更多信息: 我已经减少了 EJB-JAR 文件,campaigner-service.jar,所以其中只有一个 bean,加上接口和异常。 EAR 文件,campaigner-ejb.ear,在它的主层只有 EJB-JAR。它还有一个包含支持库的“lib”目录,但其中只有 DAO 和 DTO jar 以及第三方库。所以,对我来说,这似乎不是包装问题。
这是我第一个使用所有注释的应用程序,但它看起来仍然相当简单。我错过了什么?
【问题讨论】:
-
您能澄清一下减少 EJB-JAR 文件是什么意思吗?你能粘贴文件的内容吗?
-
即使弹回weblogic也会出现同样的错误吗?
-
EJB-JAR 中有几个 bean。为了减少此问题中的变量数量,我将构建文件更改为仅包含一个 bean。 EJB-JAR 文件是一个 JAR 文件,所以我无法真正复制它,但它的内容包括一个 EJB 实现及其接口,以及一些自定义异常。
-
是的,我在弹回 weblogic 时遇到同样的错误
-
我们已从 OC4J 升级。在 OC4J 中,EJB 可以是本地的也可以是远程的,但不能同时是两者。我假设在 WebLogic 中,EJB 可能两者兼有。这个假设是错误的吗?我确实需要这两个,因为我要从网站和独立的命令行应用程序访问这些 bean。
标签: java jakarta-ee ejb-3.0 weblogic12c