import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.util.Collection;
import java.util.Iterator;
import java.util.Enumeration;public class Test{
MsSqlJbossRemote msSqlJbossRemote;
MsSqlJbossRemoteHome msSqlJbossRemoteHome;
   public  Test(){
     InitialContext jndi = new InitialContext();
       Object obj = Object ref = ctx.lookup("MsSqlJbossRemote");
     msSqlJbossRemoteHome = (MsSqlJbossRemoteHome)        
       PortableRemoteObject.narrow(ref, MsSqlJbossRemoteHome.class);
 }
}

解决方案 »

  1.   

    MsSqlJbossRemote msSqlJbossRemote=null;
    MsSqlJbossRemoteHome msSqlJbossRemoteHome=null;
      

  2.   

    我按照各位的代码写了代码如下:
    package clientprj;
    import javax.naming.*;
    import javax.ejb.*;
    import java.util.Properties;
    public class client {
      public static void main(String[] args) {
        HelloBean1 hb1=null;
        HelloBean1Home hb1home=null;
        client c1=new client();
        try{
          Properties props=System.getProperties();
          /*Context ctx=new InitialContext(props);*/
          Context ctx=c1.getInitialContext();
          hb1home=(HelloBean1Home)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("HelloBean1"),HelloBean1LocalHome.class);
          hb1=hb1home.create();
          hb1.Sayhello();
          hb1.remove();
        }
        catch(Exception e){
          e.printStackTrace();
      }
    }
    private Context getInitialContext() throws Exception {
        String url = "t3://piccl:7001";
        String user = null;
        String password = null;
        Properties properties = null;
        try {
          properties = new Properties();
          properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
          properties.put(Context.PROVIDER_URL, url);
          if (user != null) {
            properties.put(Context.SECURITY_PRINCIPAL, user);
            properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
          }      return new InitialContext(properties);
        }
        catch(Exception e) {      throw e;
        }
    }
    }
    但是执行中产生如下错误:
     java.lang.ClassCastException  at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:296)  at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)  at clientprj.client.main(client.java:16)请问,如何解决啊?谢谢各位了
      

  3.   

    ClassCastException??
    你看看是不是同时import了两个相同的类
      

  4.   

    你把你的ejb的jar包放到你的classpath下面去试试看
      

  5.   

    真的很奇怪,我把我自己写的客户端的JAVA文件放到EJB项目的SRC目录下编译执行,不出现CLASSCASTEXCEPTION,可是放在自己的目录下就会产生此错误,这是什么原因啊?难道客户端一定要和EJB一起发布么?!
      

  6.   

    你把你的ejb的jar包放到你的classpath下面去试试看你试过没有啊,没有问题的
      

  7.   

    我试过啊,我在CLASSPATH 中加入了HelloBean1.jar,但是问题依旧啊!
      

  8.   

    hb1home=(HelloBean1Home)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("HelloBean1"),HelloBean1LocalHome.class);
          
    改为hb1home=(HelloBean1Home)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("HelloBean1"),HelloBean1Home.class);
    转型错误
      

  9.   

    请问怎么分别在JB跟WEBLOGIC7中设置CLASSPATH?
      

  10.   

    我就编一个类,能不能调用EJB的?就是说客户端不做成JAR,别笑我,我很菜,谢谢