在eclipse 下面,可以建一个web工程测试ejb,除此之外,有没有什么方法,能够在ejb容器中测试呢,比如一个简单的main程序, 能够调用ejb么

解决方案 »

  1.   

    当然不行,ejb是分布式的程序,一个mian怎么实现分布式呢?
      

  2.   

    ejb不直接依赖于jvm,他首先要依赖于j2ee规范的容器(weblogic、jboss、websphere等,tomcat不行),所以楼主得先在eclipse里配置一个标准j2ee的容器,才能谈测试。main方法当然是不行的。
      

  3.   

     晕! 肯定行了 ,别吾了人家,
    楼主你换个环境 。MyEclipse 在里面建一个EJB项目,然后写好你的EJB
    一个main程序当然可以掉,你再建一个Java 项目,直接写一个main程序,然后将
    你写的EJB接口打包成jar文件放到你建的java项目中,并提供一个jdni.properties文件
    就可以调用EJB了
      

  4.   

    因为EJB,区别于一般的JAVA WEB项目,
    一个普通的客户端(就是一个普通的J2SE程序 有main方法)也可以调用EJB。
      

  5.   


    WEB工程建不了EJB项目,你必须建一个EJB项目,然后配置一下EJB容器(我用的是Jboss,开源的 )
    然后部署到jboss上去,写一个mian方法的程序,OK就可以调了 
      

  6.   

    晕了。
    才想起来,程序运行都需要有个入口,web程序没有main,那tomcat这个web容器作为j2se程序必定有main。那这么说不管是web还是ejb,都是从main开始的。
    猜测啊,呵呵。被说晕了。
      

  7.   

    你要看你现在关心的是什么,你现在就是想调用EJB,
    一个web程序可以掉,一个普通客户端也可以调用啊
      

  8.   

    谢谢各位的回帖,我再把我的意思写清楚一点,现在我有三个项目,ejb, web,ear,ear就是打包了ejb和web的项目,现在我想测试一下ejb的功能,比如说写一条记录到数据库,我在web页面上是可以做到的,因为web和ejb运行在同一个容器下,但是用web测试太麻烦了,我想还是用自己写一个测试方法,然后直接运行这个方法,这个方法可以获取容器中的EJB, 也就是说,这个方法和EJB运行在同一个context下面,我看见网上有人这么写的,
      Properties props = new Properties();           
                props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
                props.setProperty("java.naming.provider.url", "localhost:1099");
                props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
                InitialContext ctx = new InitialContext(props);
                ctx.lookup("HelloWorldBean/remote");但是我也还没有试验成功,但是我想这段代码大概与我的想法相符合,谢谢各位继续提意见