java - SerialContext 的通信异常 [myEnv= Glassfish 3.1.2.2 中的异常

标签 java jakarta-ee glassfish jndi

我的应用程序包含“服务定位器”模式的实现。 ServiceLocator 是一个中央组件,它为远程 EJB 执行 (JNDI) 查找,并被我们的几个应用程序/组件(r6-core、Java-API 等)使用。 ServiceLocator 有多个配置选项,其主要目标是实现灵活的(机器独立/应用独立)部署场景。另一个目标是从业务逻辑(代码)中屏蔽 JNDI/EJB 查找样板。

如果特定的 EJB 配置为仅通过本地调用进行调用,则 ServiceLocator 实现首先实例化一个空的 InitialContext 并执行 JNDI 查找:

InitialContext ic = new InitialContext();
ic.lookup(jndiName);

当前意外的行为是我们在执行这段代码时得到以下异常:

lookup for jndi-name 'java:global/.../ar-common-impl/ArPropertiesDaoBean' failed: 'Communication exception for SerialContext[myEnv=
{java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.corba.orb=com.sun.corba.ee.impl.orb.ORBImpl@4f92338d,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
com.sun.appserv.ee.iiop.endpointslist=corbaloc:iiop:1.2@sprprd01:23700}

这个异常说明尝试了远程调用!由于这些(仅本地)EJB 未配置为远程 bean(因此不可序列化),因此抛出异常。

问题是:即使我们没有提供任何这些参数,端点列表从何而来?

最佳答案

问题已通过使用 EJB 注入(inject)而不是本地查找得到解决

关于java - SerialContext 的通信异常 [myEnv= Glassfish 3.1.2.2 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25685416/

相关文章:

java - 我可以为 Java native 接口(interface) (JNI) 库设置环境变量吗?

java - 在 OS X Lion 上安装 Java EE 6

mysql - 通过 MySQL 工作台向用户发送电子邮件

java - struts2-core ejb模块之间共享依赖

mysql - 无法实例化持久性管理器org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager

java - 验证失败时阻止操作

java - 从java调用带有特殊字符的url

java - Java中调用JTable.print()时是否可以设置左右边距的大小?

apache - 如何配置 Apache 作为 j2ee 服务器的代理(负载均衡器)?

jsf - 两个不同的 Maven Web 项目如何共享同一个 EJB