特别的,jboss和tomcat不在一个机器上

解决方案 »

  1.   

    楼上的,我知道tomcat是不能使用ejb的,
    我的意思是 将ejb部属在jboss上运行
               使用tomcat上的servlet/JSP调用该EJB
    如何配置才能调用!!!谢谢
      

  2.   

    也就是使用了两个服务器.jboss3.2.5和tomcat5.5.6。 
      

  3.   

    weblogic和tomcat整合是用配置文件,jboss也大概一样吧。
      

  4.   

    其实是已经整合好的,但我要拆开,这样才能实现远程调用ejb。
      

  5.   

    如何处理classpath.
           web-info   下的Lib目录和class目录
          如何处理jboss
          及几个XML文件
    1、classpath不用处理
    2、发布于tomcat下的web程序的web-info下的lib目录需要添加jboss3.2.5目录下的client中所有类包。
    3、jboss不用任何处理
    4、xml文件不用任何处理关键是要使用jboss的类包,因为ejb只是个规范,每个容器,比如jboss或者weblogic都是自己实现,所有调用时要使用相同的实现类包。
      

  6.   

    可能是调用EJB的方法有问题吧!
    Hastable hashtable = new Hashtable();
    hashtable.put("intial.factory","JBoss的factory");
    hashtable.put("intial.provider","JBoss的Provider");
    hashtable.put("intial.url","jndi的url);
    Content ctx = new InitialContext(hashtable);
    我记得需要配三个属性!但是我写的不对!你可以查一下相关的东西反正你配上factory,provider和url),如果你的EJB实现的是远程接口,并且配置没有问题的话!应该是可以的!
      

  7.   

    bloodboy(bloodboy) 回答的很到位。
    现在出现了点 chendequan(陈德全)说到问题,找不到ejb name
    String aa=bbHome.JNDI_NAME;
    Properties jndiProps = new Properties() ;
    jndiProps.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    (Context.INITIAL_CONTEXT_FACTORY,"com.ibm.ejs.ns.jndi.CNInitialContextFactory");
    jndiProps.setProperty(Context.PROVIDER_URL,"jnp://192.168.10.88:1099");//另一台机器,ejb运行中
    Context initial = new InitialContext(jndiProps);
    Object objref= initial.lookup("java:comp/env/bb");//这一步有问题,改称bb也一样jboss.xml
          <session>
             <ejb-name>bb</ejb-name>
             <jndi-name>bb</jndi-name>
             <local-jndi-name>bbLocal</local-jndi-name>      </session>
    ejb-jar.xml
          <session >
             <description><![CDATA[<!-- begin-user-doc --> A generated session bean <!-- end-user-doc --> * <!-- lomboz.beginDefinition --> <?xml version="1.0" encoding="UTF-8"?> <lomboz:EJB xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:lomboz="http://lomboz.objectlearn.com/xml/lomboz"> <lomboz:session> <lomboz:sessionEjb> <j2ee:display-name>bb</j2ee:display-name> <j2ee:ejb-name>bb</j2ee:ejb-name> <j2ee:ejb-class>aa.bbBean</j2ee:ejb-class> <j2ee:session-type>Stateless</j2ee:session-type> <j2ee:transaction-type>Container</j2ee:transaction-type> </lomboz:sessionEjb> </lomboz:session> </lomboz:EJB> <!-- lomboz.endDefinition --> <!-- begin-xdoclet-definition -->]]></description>         <ejb-name>bb</ejb-name>         <home>aa.bbHome</home>
             <remote>aa.bb</remote>
             <local-home>aa.bbLocalHome</local-home>
             <local>aa.bbLocal</local>
             <ejb-class>aa.bbSession</ejb-class>
             <session-type>Stateless</session-type>
             <transaction-type>Container</transaction-type>      </session>这是目前情况,找不到,难道要配置web.xml
      

  8.   

    恩,两个配置文件,以及贴上了,麻烦看一下,而且这是自动生成的,问题是servlet端找不到
      

  9.   

    报错是:
    javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
    at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1119)
    或者是:
    javax.naming.NameNotFoundException:
      

  10.   

    问题的关键在于原来Tomcat和Jboss整合在一起的时候你调用的是SessionBean的本地接口,因为他们在同一个JVM中运行,但是单独移植出来后就只能调用远程接口了如果原来的SessionBean也许根本没有远程接口,这时就需要你去增加,并调用远程接口
      

  11.   

    根据我查德资料,servlet要想访问ejb,远程是一定要配置web.xml文件的。和以前配置数据库的Jndi一个道理.问题是,我这里有tomcat4的版本文件却没有tomcat5.5.6的. popufig(失散的影子) 
    bb.java
    bbHome.java
    bbLocal.java
    bbLocalHome.java
    bbSession.java
    bbUtil.java已经有了6个文件,应该不缺了把?
      

  12.   

    楼主还是最好去看看 ejb cookbook这本书前面部分有你需要的东西!!!