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

时间:2014-11-13 12:20:13

标签: jboss datasource shared-resource

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

我如何在jboss(4.2.3.GA)中配置一个数据源,可以通过所有部署的war,ear或应用程序查看,当然这个jar实用程序部署在$ JBOSS_HOME / server /&lt; < em> instance &gt; / 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

好吧,我正处于“澄清会在这里受到赞赏”......

2 个答案:

答案 0 :(得分:2)

创建JBoss数据源

将数据源配置(* -ds.xml文件)添加到$ JBOSS_HOME / sever /&lt; 服务器名称&gt; / 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容器中的代码完成。

答案 1 :(得分:0)

好的,这让我有一周的研究时间:

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

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

  3. &LT; 使用-java的上下文&GT假LT; /使用-java的上下文&GT;

    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");