Worklight 6.1,Tomcat 7.0.42 上的 SQL 适配器 (Oracle 11g) JNDI 错误
Posted
技术标签:
【中文标题】Worklight 6.1,Tomcat 7.0.42 上的 SQL 适配器 (Oracle 11g) JNDI 错误【英文标题】:Worklight 6.1, SQL Adapter (Oracle 11g) JNDI error on Tomcat 7.0.42 【发布时间】:2014-11-15 09:04:18 【问题描述】:我们正在 Worklight 6.1、Oracle 11g 和 Tomcat 7.0.42 上部署 Worklight 应用程序。
我们按照手动程序在 Tomcat 上部署 worklight 应用程序 我们配置了以下文件: 适配器.xml
<connectivity>
<connectionPolicy xsi:type="sql:SQLConnectionPolicy">
<dataSourceJNDIName>$DataSource-jndi-Local</dataSourceJNDIName>
</connectionPolicy>
worklight.properties
DataSource-jndi-Local = jdbc/WorklightAppDS
server.xml(Tomcat 7)
<Context path="/App_Name" docBase="App_Name">
<Resource name="jdbc/WorklightAppDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@domain:1521:ORCL"
username="DBUSER"
password="DBPASS"/>
<Resource name="jdbc/WorklightDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@domain:1521:ORCL"
username="DBUSERWORKLIGHT"
password="DBUSERWORKLIGHTPASS"/>
<Resource name="jdbc/WorklightReportsDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@domain:1521:ORCL"
username="DBUSERWORKLIGHTREPORTS"
password="DBUSERWORKLIGHTREPORTSPASS"/>
<Manager pathname="" />
</Context>
完成上述配置后,Worklight 应用程序已部署,我们可以访问 Worklight 控制台 在上下文“/App_Name/console”上。 我们在工作灯控制台上部署了 .wlapp 和 .wladapter,当我们通过应用程序调用工作灯适配器时 它说“运行时:在 jndi 中找不到数据源 jdbc/WorklightAppDS”。
我们尝试了另外两种配置数据源的方法:
在server.xml的<GlobalNamingResources>
标签中添加数据源配置:
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/WorklightAppDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@domain:1521:ORCL"
username="DBUSER"
password="DBPASS"/>
</GlobalNamingResources>
在 context.xml 文件中添加数据源配置:
WEB-INF/web.xml
<Resource name="jdbc/WorklightAppDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@domain:1521:ORCL"
username="DBUSER"
password="DBPASS"/>
<!--
<Manager pathname="" />
-->
</Context>
在这两种方法中,我们面临同样的错误。即“运行时:在 jndi 中找不到数据源 jdbc/WorklightAppDS”
【问题讨论】:
【参考方案1】:在 dataSourceJNDIName 中尝试 java:comp/env/$DataSource-jndi-Local。
【讨论】:
以上是关于Worklight 6.1,Tomcat 7.0.42 上的 SQL 适配器 (Oracle 11g) JNDI 错误的主要内容,如果未能解决你的问题,请参考以下文章
将 windows phone 8.0 phonegap 应用程序从 worklight 6.0 移动到 worklight 6.1
IBM Worklight 6.1 - 如何将应用程序连接到远程 Worklight 服务器?