1

我的 ejb 3 类和远程接口如下:

package com.myeclipse.ejb3;

import java.io.Serializable;

public interface IMyBean extends Serializable 
{
  public void doSomething();
}

远程接口:

package com.myeclipse.ejb3;

import javax.ejb.Remote;

@Remote
public interface MyBeanRemote extends IMyBean {

}

无状态ejb:

package com.myeclipse.ejb3;

import javax.ejb.Stateless;

@Stateless(mappedName="ejb/MyBean")
public class MyBean implements MyBeanRemote 
{
public void doSomething()
{
    System.out.println("Hello world");
}
}

项目已成功部署为 weblogic 中的 jar 文件。我开发了一个独立的客户端来调用 ejb。但这是失败的。请帮忙。我已经包含了所有用于连接到 jndi 和远程业务接口的 weblogic 服务器库以进行编译。

客户代码:

package Ejb3_Client;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

public class MyBeanClient {

/**
 * @param args
 */
public static void main(String[] args) 
{
    // TODO Auto-generated method stub
    try { 

         Properties p = new Properties();

         p.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
         p.put("java.naming.provider.url", "t3://172.21.123.70:8001");

         InitialContext ctx = new InitialContext(p);         

        MyBeanRemote bean = (MyBeanRemote) ctx.lookup("ejb/MyBean#com.myeclipse.ejb3.MyBeanRemote"); 
        System.out.println("bean instance "+ bean); 
        bean.doSomething(); 
         System.out.println("bean worked");

    } catch (NamingException e) { 
        e.printStackTrace(); 
    } 


}

}

但我得到了这个例外:

javax.naming.CommunicationException [根异常是 java.rmi.UnmarshalException:无法解组 java.lang.Object 类;嵌套异常是:weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java: 439) 在 weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:395) 在 weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) ) 在 Ejb3_Client.MyBeanClient.main(MyBeanClient.java:33) 引起:java.rmi.UnmarshalException:解组类 java.lang.Object 失败;嵌套异常是:java.lang.ClassNotFoundException: com.myeclipse.ejb3。

我进行了很多搜索,但发现它无法解组远程接口的问题。

4

1 回答 1

0

上述错误的原因主要是因为在某些实现 Serializable 接口的 java 文件中已更改,您可以将这些文件恢复到以前的版本

于 2020-10-29T07:29:10.113 回答