如何为在默认上下文中初始化连接的jar库配置数据源jboss4.2.3



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

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

谢谢:)

更新:

我特别想做:

"2a.共享资源配置

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

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

<Resource name="jdbc/postgres" auth="Container"
          type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://127.0.0.1:5432/mydb"
          username="myuser" password="mypasswd" maxActive="20" maxIdle="10" maxWait="-1"/>

来源:https://docs.jboss.org/jbossweb/2.1.x/jndi-datasource-examples-howto.html

好吧,我在"请在这里澄清"的部分。。。

创建JBoss数据源

将数据源配置(*-ds.xml文件)添加到$JBOSS_HOME/server/<服务器名称>/deploy目录。

这个StackOverflow的答案有更多的细节:如何在JBoss应用服务器中创建DataSource

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

配置Tomcat资源参考

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

这个StackOverflow问题的公认答案的第1步有更多详细信息:JNDI路径Tomcat与Jboss

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

使用JNDI查找数据源

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

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

  1. 创建一个*-ds.xml文件。

  2. 在数据源定义中添加以下标签:

<使用java上下文>false</使用java上下文>

  1. 然后,在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");
    

相关内容

  • 没有找到相关文章

最新更新