-1

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

我如何在 jboss (4.2.3.GA) 中配置一个数据源,所有部署的 war、ear 或应用程序都可以看到,当然还有这个 jar 工具,它部署在 $JBOSS_HOME/server/< instance >/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

好吧,我是“澄清将在这里不胜感激”的一部分......

4

2 回答 2

3

创建 JBoss 数据源

将数据源配置(*-ds.xml 文件)添加到您的 $JBOSS_HOME/sever/< server-name >/deploy 目录中。

这个 StackOverflow 答案有更多细节:How to create a DataSource in JBoss application server

该链接适用于 JBoss 5,但我认为数据源配置在 4.2.3 和 5 之间变化不大。

配置 Tomcat 资源参考

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

此 StackOverflow 问题的已接受答案的第 1 步有更多详细信息:JNDI path Tomcat vs. Jboss

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

使用 JNDI 查找数据源

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

于 2014-11-13T12:29:16.203 回答
0

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

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

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

< use-java-context >false< /use-java-context >

  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");
    
于 2014-11-17T20:18:19.563 回答