尝试访问Tomcat服务器上的JNDI源

时间:2013-07-30 16:43:22

标签: sql-server tomcat jboss migration jndi

我在Jboss服务器上运行了一个应用程序。在Jboss上它使用JNDI源代码来建立数据库连接名cc.xml& iv.xml。(jboss / server / default / deploy /两个jndi xml都在这里)

现在我必须在Tomcat上部署相同的战争并尝试创建&从tomcat访问JNDI源代码。我做了以下更改 -

将以下代码添加到META-INF / Context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/R2">
<ResourceLink name="ivrDataSource" global="ivrDataSource" type="javax.sql.DataSource"    />
<Resource
  name="ivrDataSource"
  type="javax.sql.DataSource"
  driverClassName="net.sourceforge.jtds.jdbc.Driver"
  password=""
  maxIdle="2"
  maxWait="5000"
  username="user"
  url="jdbc:jtds:sqlserver://abc:1433;DatabaseName=IVR_GUARDIAN;tds=8.0;lastupdatecount=false;socketKeepAlive=true;"
  maxActive="4"/>

  <ResourceLink name="ccDataSource" global="ccDataSource" type="javax.sql.DataSource" />
<Resource
name="ccDataSource"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
password=""
maxIdle="2"
maxWait="5000"
username="web"
    url="jdbc:jtds:sqlserver://xyz:1433;DatabaseName=CC_GUARDIAN;tds=8.0;lastupdatecount=false;socketKeepAlive=true;"
maxActive="4"/>
</Context>

以下添加到WEB.XML ----

     <!-- FOR TOMCAT DEPLOYMRNT -TESTING  -->
   <resource-ref>
<description>ccDataSource</description>
<res-ref-name>ccDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
  </resource-ref>
  <resource-ref>
<description>ivrDataSource</description>
<res-ref-name>ivrDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

但我收到错误 -

  javax.naming.NameNotFoundException: Name ccDataSource,ivrDataSource is not bound in     this Context.

总是在JBOSS上工作,所以这对我来说很新。在这里发现一些事情。请建议。

1 个答案:

答案 0 :(得分:0)

您不必使用<ResourceLink>。尝试删除<ResourceLink> s。

<ResourceLink>用于创建指向全局JNDI资源的链接。

请参阅以下链接了解更多详情。

http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Resource%20Links

希望这有帮助。