2

JBoss AS 4.2.1.GA で動作する Adob​​e LiveCycle ES 2 ターンキー プロジェクトを使用しています。JBoss で JNDI バインディングを機能させるのに問題があります。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>

/RMB/WebContent/WEB-INF/web.xml に以下が含まれる Java プロジェクトがあります。

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

私は、JNDI バインディング自体が正しいことを 100% 確信しています。Web コンソールで次のように表示されます > System > 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に何か問題があるはずですよね?明らかな何かが欠けていますか?

4

1 に答える 1

1

素晴らしいケタンに感謝します!

jboss-web.xmlが必要です:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <resource-ref>
        <res-ref-name>RMB_DS</res-ref-name>
        <jndi-name>java:/RMB_DS</jndi-name>
    </resource-ref>
</jboss-web>

そして、元のweb.xmlを次のように変更しました。

<resource-ref>
   <description>DB Connection</description>
   <res-ref-name>RMB_DS</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

これは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>
于 2011-09-07T03:57:17.257 に答える