如何创建在websphere上运行的Web应用程序,哪些将使用websphere提供的数据源?

时间:2013-04-22 08:32:08

标签: java-ee websphere jndi

我在websphere上设置了一个Web应用程序,但它无法找到webphere提供的数据源的JNDI名称。

我是websphere的新手,之前没有使用过JDNI,我发现很难直接使用这个应用程序。

如何创建一个可以在websphere上运行并使用websphere提供的数据源的简单Web应用程序。或者我可以尝试任何现有的演示吗?

我认为这样的应用程序可以帮助我找到问题。

3 个答案:

答案 0 :(得分:4)

如果使用Context查找,则必须在部署描述符(web.xml)中声明新的资源引用:

<resource-ref>
  <res-ref-name>jdbc/newReference</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

但这不是全部。您还必须将此新引用绑定到服务器的JDBC资源(ibm-web-bnd.xml):

<resource-ref name="jdbc/newReference" binding-name="jdbc/ressourceOnServer"/>

请注意,此机制与使用sun-web.xml文件在Glassfish上执行的操作非常相似,只是绑定有点不同:

<resource-ref>
    <res-ref-name>jdbc/newReference</res-ref-name>
    <jndi-name>jdbc/ressourceOnServer</jndi-name>
</resource-ref>

看看这个问题:How do I connect to a Websphere Datasource with a given JNDI name?。如果您需要更多细节,我可以举一个例子。

答案 1 :(得分:2)

在websphere中设置数据源时,系统会要求您输入所需的JNDI名称。据我所知,它通常类似于“jdbc / appname”。

然后,如果您使用JPA,则只需将给定名称放在persistence.xml文件中:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="appname" transaction-type="RESOURCE_LOCAL">

        <non-jta-data-source>jdbc/appname</non-jta-data-source>


        <!-- CLASS TO PERSIST -->

    </persistence-unit>
</persistence>

我现在注意到我在我的应用程序中将数据源列为非jta,但我相信WebSphere的数据源是JTA感知的。你可能想检查一下。

答案 2 :(得分:1)

打开您的Websphere管理控制台。

点击资源&gt;&gt; 数据来源

您将获得已配置的数据源列表。在列表中将有Default Datasource。点击它。在配置表单中,有一个名为JNDI name的字段。这是Websphere提供的默认数据源的jndi名称。

您可以使用注释注入在Web组件中注入DataSource。

@Resource(name = "DefaultDatasource")
DataSource ds;

教程适用于tomcat,但请参阅servlet示例和使用datasource作为注释注入&gt;&gt; http://theopentutorials.com/tutorials/java-ee/servlet/servlet-datasource-resource-injection-in-tomcat/