当前位置: 首页 > 知识库问答 >
问题:

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

丘智志
2023-03-14

我的应用程序包含“服务定位器”模式的实现。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(因此不可序列化),因此引发了异常。

问题是:endpointslist来自哪里,即使我们没有提供这些参数中的任何一个?

共有1个答案

潘畅
2023-03-14

通过使用EJB注入而不是本地查找解决了这个问题

 类似资料:
  • 我试图连接我的java应用程序与SQL数据库和当我点击保存按钮它给我以下错误 这是我的密码

  • 我们正在运行一个带有Spring Hibernate MySql的J2EE应用程序,该应用程序在内部使用C3P0和Connector/J进行连池。 C3P0 C3P0配置 我的应用程序在一段时间后内部调用存储过程,我遇到以下错误 错误日志 现在,当我查看数据库日志时,我发现大多数查询都处于“创建排序索引”状态,如下所示 有人能帮我吗... 编辑 1.c3p0初始化日志

  • 问题内容: 我们在工作中使用JUnit 3,并且没有注释。我想在我们的代码中添加一个实用程序来包装它: 所以我尝试了这个: 但是,我认为Java无法在catch块中使用通用异常类型。 围绕Java限制,我该怎么做? 有没有办法检查变量的类型? 问题答案: 您可以传入Class对象并以编程方式进行检查。 我不确定您是否要重新扔球;重新抛出将同样导致测试失败/错误,但是从语义上讲我不会,因为它基本上意

  • 问题内容: 如何处理异常? 例如,我想忽略目录中除之外的所有内容。 我试过了… 似乎不起作用。 显示任何一种方式。 问题答案: 似乎没有处理异常。如果存在众所周知的语法,则可以提出更改并提出请求。 在commands.go的标记1.3中,我们看到了以下内容: 并在archive.go中:

  • 我是第一次测试和使用jmeter的新手。使用这些步骤,我试图在jmeter中记录移动设备脚本。我已完成以下步骤: 打开JMeter并右键单击测试计划 但是当我在浏览器上检查服务器状态时(),出现以下错误: 组织。阿帕奇。http。客户ClientProtocolException:URI未指定有效的主机名:https:////在org。阿帕奇。http。impl。客户抽象HttpClient。De