不需要有代码,但调用者需要有rmi存根(定义了接口,部署时获得),然后通过配置ejb引用来访问。欢迎光临Java,J2EE论坛( http://letsjava.yeah.net )。 
http://www.minij2ee.com/ 

解决方案 »

  1.   

    这个问题很复杂得,RMI就起到这个作用,你不需要了解到底是怎么调用的(如果你不关心的话)。当然你腰知道在那个EJB1里面有些什么东西。
    在你的客户端肯定要用到Lookup()类似的方法(通过EJB1所在的应用服务器),他会找到你要用的EJB1的,当让EJB1部署的地方最好是在“北京”了
      

  2.   

    是不是这样?    try {
          //get naming context
          Context ctx = getInitialContext();      //look up jndi name
          Object ref = ctx.lookup("CityAgency");      //cast to Home interface
          EJB1Home = (EJB1Home) PortableRemoteObject.narrow(ref, EJB1Home.class);
          ......//可是,我哪里来的EJB1Home.class呢?
        }
        catch(Exception e) {
        }
      

  3.   

    你通过JNDI查找对象,就是你上文的那个OBJ,至于JNDI怎么找到你所需的对象,看看JDNI文档吧,实际上你得到那个context时,就已经定义了JNDI服务了。
      

  4.   

    访问ejb的client不需要有ejb的业务逻辑代码,但必须要有ejb的接口和rmi存根,否则无法调用。类似corba和dcom。欢迎光临Java,J2EE论坛( http://letsjava.yeah.net )。 
    http://www.minij2ee.com/ 
      

  5.   

    我也遇到这个问题啦,呵呵,谁知道在WAS3.5或WEBLOGIC6.0上如何配置(DD)告诉我一声,[email protected],我在教育网上不了这里,谢谢啦:)呵呵
    QQ7659681
      

  6.   

    to montop()我知道怎么用jdbc找这个obj,可是EJB1Home = (EJB1Home) PortableRemoteObject.narrow(ref, EJB1Home.class);这里要用到EJB1Home,他就找不到EJB1Home了啊
      

  7.   

    to minij2ee2000(minij2ee)ejb的接口和rmi存根,我还是不清楚能有例子吗?能给出原码看看?
      

  8.   

    EJB1Home类是肯定要有的,没有的话,就无法create一个EJB的实例,同样EJB的Remote Inteface类也要有,不然就不知道可以用哪些方法了。具体的代码sun的j2eetoure包中有,weblogic中也有例子。这里提供一个简单的例子,是我刚写好的,已经测试通过:
    /*
     * HelloWorldHome.java
     *
     * Created on 2001年11月13日, 下午9:46
     */package testejb;/**
     *
     * @author  hcxing
     * @version 
     */
    public interface HelloWorldHome extends javax.ejb.EJBHome {    HelloWorld create() throws java.rmi.RemoteException, javax.ejb.CreateException;
        
    }/*
     * HelloWorld.java
     *
     * Created on 2001年11月13日, 下午5:27
     */package testejb;/**
     *
     * @author  hcxing
     * @version 
     */
    public interface HelloWorld extends javax.ejb.EJBObject {    public String sayHello() throws java.rmi.RemoteException;
        
    }/*
     * HelloWorldEJB.java
     *
     * Created on 2001年11月13日, 下午9:50
     */package testejb;/**
     *
     * @author  hcxing
     * @version 
     */
    public class HelloWorldEJB implements javax.ejb.SessionBean {    /** Creates new HelloWorldEJB */
        public HelloWorldEJB() {
        }    public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
        }
        
        public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
        }
        
        public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException {
        }
        
        public void setSessionContext(javax.ejb.SessionContext sessionContext) throws javax.ejb.EJBException, java.rmi.RemoteException {
        }
        
        public void ejbCreate() throws java.rmi.RemoteException, javax.ejb.CreateException{
        }
        
        public String sayHello(){
            return "Hello World!";
        }
        
    }import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.rmi.PortableRemoteObject;import java.util.Hashtable;import testejb.HelloWorld;
    import testejb.HelloWorldHome;public class HelloWorldClient {   public static void main(String[] args) {
            Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, 
         "weblogic.jndi.WLInitialContextFactory"); //Context ctx = new InitialContext(env);
           try {
               Context initial = new InitialContext(env);
               //Context myEnv = (Context)initial.lookup("java:comp/env");
               Object objref = initial.lookup("testejb/HelloWorldHome");           HelloWorldHome home = 
                   (HelloWorldHome)PortableRemoteObject.narrow(objref, 
                                                HelloWorldHome.class);           HelloWorld currencyHelloWorld = home.create();    System.out.println(currencyHelloWorld.sayHello());
               System.exit(0);       } catch (Exception ex) {
               System.err.println("Caught an unexpected exception!");
               ex.printStackTrace();
           }
       } 
      

  9.   

    到底我在本地机上要不要有EJB1Home.class??
      

  10.   


    明确的说,要!上面的兄弟不是说了,要接口和RMI存根吗?你的Home和Remote 接口的class文件是要的,只是不需要Bean的class文件,这里定义了你的EJB的实现业务代码。
      

  11.   

    当然,本地机必须要有你调用的home接口类,及object类,而bean类则不需要。
      

  12.   

    jb5会自动生成这个,好象在tools菜单里面