我尝试将以下代码作为EJB部署到WebLogic 12c,但出现错误:


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,以及接口(interface)和异常。 EAR文件campaigner-ejb.ear在主级别仅包含EJB-JAR。它还具有包含支持库的“lib”目录,但其中仅包含DAO和DTO jar以及第三方库。因此,对我来说,这似乎不是包装问题。

这是我第一个使用所有注释的应用程序,但看起来还是很简单的。我想念什么?

最佳答案

从Weblogic 10迁移到Weblogic 12的过程中,我们遇到了同样的问题。
我们可以通过在没有正确配置数据源的情况下将EAR部署在新服务器上来重现此问题。这将在部署期间导致NameNotFoundException。即使重新启动,取消部署,重新部署,以后每次尝试部署EAR都会导致JDNI名称已被使用。

解决该问题的唯一方法是删除目标服务器的缓存(最重要的是EJBCompilerCache)和tmp文件夹。

关于java - 带有EJB3的Weblogic 12c中的“JNDI name is already in use”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31546768/

10-13 02:31