如何为在默认上下文中初始化连接的jar库配置datasource jboss 4.2.3?

如何为在默认上下文中初始化连接的jar库配置datasource jboss 4.2.3?,jboss,datasource,shared-resource,Jboss,Datasource,Shared Resource,我们有一个jar库util,它管理连接到db的一些逻辑,并将数据存储在内存中。好的,这在tomcat中工作得很好,因为我们可以在$CATALINA_HOME/conf/context.xml中配置数据源,一切都正常 我如何在jboss 4.2.3.GA中配置一个数据源,所有部署的war、ear或应用程序都可以看到这个数据源,当然还有部署在$jboss_HOME/server//lib中的这个jar util 谢谢: 更新: 我特别想做: 2a。共享资源配置 如果您希望定义跨多个JBoss Web

我们有一个jar库util,它管理连接到db的一些逻辑,并将数据存储在内存中。好的,这在tomcat中工作得很好,因为我们可以在$CATALINA_HOME/conf/context.xml中配置数据源,一切都正常

我如何在jboss 4.2.3.GA中配置一个数据源,所有部署的war、ear或应用程序都可以看到这个数据源,当然还有部署在$jboss_HOME/server//lib中的这个jar util

谢谢:

更新:

我特别想做:

2a。共享资源配置

如果您希望定义跨多个JBoss Web应用程序共享的数据源,或者您只是希望在此文件中定义数据源,请使用此选项

这位作者在这里没有取得成功,尽管其他人也报告了这一点。请在此澄清

资料来源:

好的,我正在进行澄清,希望您能在这里进行澄清…

创建一个JBoss数据源

将datasource configuration*-ds.xml文件添加到$JBOSS_HOME/sever//deploy目录中

此答案包含更多详细信息:

这个链接是针对JBoss5的,但我认为在4.2.3和5之间,数据源配置没有太大变化

配置Tomcat资源引用

配置Tomcat资源引用以指向JBoss数据源。此配置将通过JNDI名称标识数据源,以便从JBoss数据源检索连接

此StackOverflow问题的公认答案的第1步有更多详细信息:

请注意,您的资源配置是定义一个新的数据源,而不是重用JBoss定义

使用JNDI查找数据源


相同的答案解释了如何执行此操作,但请注意,URI略有不同,这取决于是从EJB容器外的客户端代码中执行查找,还是从EJB容器内的代码执行查找。

好的,这让我花了大约一周的时间进行研究:

创建一个*-ds.xml文件

在数据源定义中添加以下标记:

假的

然后,在java代码中,我们可以这样称呼它:

        Properties env = new Properties();

        env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        env.setProperty(Context.PROVIDER_URL, "localhost:1100");

        initialContext = new InitialContext(env);

        DataSource datasource = (DataSource) initialContext.lookup("myCustomDs");

这不起作用,因为我已经配置了datasource*-ds.xml,但是我很难配置其他文件,比如$JBOSS_HOME/server/instance/deploy/JBOSS-web.deployer/server.xml,或者一些context.xml来包含等效的配置i vote down,因为这个答案不适用于部署一个可以在所有Web应用程序中看到的数据源,或者可能在jboss 5中可以看到,但在4.2.3中,我尝试了它,但不适用@richj所说的应该有效的方法,*-ds.xml数据源可以由服务器中部署的任何应用程序通过jndi访问。。确保您的jndi名称是correct@mendieta好吧,但问题是另一个:我重复一遍,我如何将数据源配置为所有部署的应用程序的全局数据源,因为我认为它没有被理解,所以这个答案对这个问题没有用处……对所有应用程序的全局数据源意味着什么?richj提供的解决方案意味着jboss中部署的任何webapp都可以使用数据源。。只要在每个应用persistence.xml中声明java:/myDsName,就可以了。。如果这不是你需要的,那么我不理解这个问题
        Properties env = new Properties();

        env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        env.setProperty(Context.PROVIDER_URL, "localhost:1100");

        initialContext = new InitialContext(env);

        DataSource datasource = (DataSource) initialContext.lookup("myCustomDs");