GlassFish 3.1 中客户端的 ctx.lookup() 时发生 CommunicationException

Posted

技术标签:

【中文标题】GlassFish 3.1 中客户端的 ctx.lookup() 时发生 CommunicationException【英文标题】:CommunicationException while client's ctx.lookup() in GlassFish 3.1 【发布时间】:2011-05-05 10:32:20 【问题描述】:

我有一个实现 Serializable 的实体类,我在客户端收到此错误:

javax.naming.CommunicationException: 通信异常 SerialContext[myEnv=java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl [根例外是 java.rmi.MarshalException: CORBA BAD_PARAM 1398079494 也许;嵌套的 例外是: java.io.NotSerializableException: ----------BEGIN 服务器端堆栈跟踪---------- org.omg.CORBA.BAD_PARAM:警告: IOP00100006:类 com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate 不可序列化 vmcid:SUN 次要 代码:6 完成:也许

当我在做SomeService serv = (SomeService)ctx.lookup("java:global/MyProject/SomeServiceImpl");

Entity 类是否应该在服务器和客户端都在同一个包中? 现在Entity类在Client App的包(dir)和SomeService接口在服务端的包(dir)中。

【问题讨论】:

【参考方案1】:

我在服务接口上添加了@Remote注解,错误消失了。

【讨论】:

感谢您发布您的解决方案,我永远不会从错误中弄清楚这一点。【参考方案2】:

我尝试了以下,一切正常。

当创建 InitialContext 为:

Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

InitialContext ctx = new InitialContext(props);

后来,

myBeanService = (MyBeanService) ctx.lookup("java:global/AppName/MyBeanService");

显示该异常,但如果我只是这样调用:

myBeanService = (MyBeanService) new InitialContext().lookup("java:global/AppName/MyBeanService");

没有问题。问题是 JNDI 属性。

【讨论】:

以上是关于GlassFish 3.1 中客户端的 ctx.lookup() 时发生 CommunicationException的主要内容,如果未能解决你的问题,请参考以下文章

Java WebSocket 获取客户端的专有名称

ASP.NET Core 3.1 - 如何获取客户端的 IP 地址?

使用 .NET Core 3.1 生成 WCF wsdl 客户端的问题

无法实例化提供程序 org.glassfish.jersey.client.JerseyClientBuilder

是否可以在 GlassFish 3.1 上为无状态 ejb Web 服务定义 servlet 过滤器

Glassfish:泽西客户端中的MessageBodyProviderNotFoundException