我正在使用在 JBoss AS 4.2.1.GA 上运行的 Adobe LiveCycle ES 2 交钥匙项目。我在让 JNDI 绑定在 JBoss 中工作时遇到问题。这似乎与之前的帖子非常相似,问题配置 JBoss 以使用 JNDI,但我当然没有找到解决方案。
这是我的设置。我有一个 -ds.xml 文件:
C:\Adobe\Adobe LiveCycle ES2\jboss\server\lc_turnkey\deploy\rmb-ds.xml
该文件的内容如下:
<datasources>
<local-tx-datasource>
<jndi-name>RMB_DS</jndi-name>
<connection-url>jdbc:sqlserver://localhost\SQLEXPRESS;DatabaseName=rmb</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>password</password>
<check-valid-connection-sql>SELECT 1 FROM sysobjects</check-valid-connection-sql>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
我有一个 Java 项目,其 /RMB/WebContent/WEB-INF/web.xml 包含以下内容:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>java:RMB_DS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
现在,每次我部署 WAR 时,它都会失败并出现以下错误:
2011-09-06 15:44:17,786 ERROR [org.jboss.deployment.MainDeployer] Could not start deployment: file:/C:/Adobe/Adobe LiveCycle ES2/jboss/server/lc_turnkey/deploy/RMB.war
org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.naming.NamingException: resource-ref: java:RMB_DS has no valid JNDI binding. Check the jboss-web/resource-ref.)
at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:384)
...
Caused by: javax.naming.NamingException: resource-ref: java:RMB_DS has no valid JNDI binding. Check the jboss-web/resource-ref.
at org.jboss.web.AbstractWebDeployer.linkResourceRefs(AbstractWebDeployer.java:623)
我 100% 肯定 JNDI 绑定本身是正确的。我可以在 Web 控制台 > 系统 > JMX Beans > jboss.jdbc > jboss.jdbc:service=metadata,datasource=RMB_DS 中看到以下内容
MBean Name: Domain Name: jboss.jdbc
service: metadata
datasource: RMB_DS
MBean Java Class: org.jboss.ejb.plugins.cmp.jdbc.metadata.DataSourceMetaData
此外,使用 LiveCycle 工作台,我可以创建一个访问该服务并针对数据源 java:/RMB_DS.. 运行一些 SQL 的进程。
所以,我的 WAR 或 web.xml 一定有问题,对吧?我错过了一些明显的东西吗?