我的问题是这样的
我将jbpm4.3部署到jboss5.0中,一切ok,jbpm4.3部署好后会绑定一个jndi,从控制台中打出该jndi的名称为java:/ProcessEngine。然后用部署在glassfish中ejb模块获取该资源,但是无论是用InitialContext的lookup还是用@resource都无法获得jboss中的jndi资源,而且也试过网上提到的很多写法,均无效。而在jboss中部署一个ejb模块,该ejb模块与jbpm在同一个服务器域中,则发现可以得到该jndi资源。
想请有过这方面经验的同仁们帮看一看,该如何做才能让glassfish中的ejb模块得到jboss5.0中发布的名称为java:/ProcessEngine的jndi资源。

解决方案 »

  1.   

    你的JBOSS和GLASSFISH是否为一台机器
      

  2.   

    <resource-ref>
    <!--JDNI资源名(同context.xml中的name属性-->
       <res-ref-name>connpool</res-ref-name>
    <!--资源类型-->
       <res-type>javax.sql.DataSource</res-type>
    <!--资源范围-->
       <res-auth>Container</res-auth>
      </resource-ref><?xml version="1.0" encoding="UTF-8"?>
    <Context>

    <Resource name="pubsds" auth="Container" type="javax.sql.DataSource"
    username="sa" 
    password=""
    driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
    url="jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs"
    maxActive="8" maxIdle="4" />
    </Context><!--该文件放置于工程的META-INF目录下
        请确保在该步骤之前将驱动程序复制到Tomcat相应目录
    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
      <Resource name="JNDI名" auth="Container"
          type="javax.sql.DataSource" 
      username="用户名"
      password="密码"
          driverClassName="驱动类"
          url="数据连接字符串"
          maxActive="8" maxIdle="4"/>
    </Context>
    -->
      

  3.   


    package com.east.ds;import java.sql.Connection;import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;public class TestDataSource {
    /***
     * 通过数据源和JNDI来获的连接对像
     * @return
     */
    public Connection getConnection(){
    Connection con = null;
    try{
    //初始化jndi的上下文
    Context context = new InitialContext();
    //通过上下文来查找数据源
    DataSource ds = (DataSource)context.lookup("java:comp/env/pubsds");
    //通过数据源来获的连接对像
    con = ds.getConnection();
    }catch(Exception se){
    se.printStackTrace();
    }finally{
    return con;
    }
    }
      
    }
      

  4.   

    East271536394 首先谢谢您的回答,不过这个例子只是针对于tomcat的,而且是一个jvm内的。请问有没有针对于问题中所描述的这个情况。资源引用端是glassfish的,而资源提供端是另一个容器中ear程序。