2011-09-06 2 views
2

JBoss AS 4.2.1.GA에서 실행되는 Adobe LiveCycle ES 2 턴키 프로젝트를 사용하고 있습니다. JBoss에서 JNDI 바인딩을 사용하는 데 문제가 있습니다. 그것은 기분이 우울하게 이전 포스트, problem configure JBoss to work with JNDI와 유사하게 보인다. 그러나 나는 확실히 해결책을 찾지 못했다.JBoss에서 JNDI 바인딩 (LiveCycle 턴키)

이것은 내 설정입니다. 다음과 같이

C:\Adobe\Adobe LiveCycle ES2\jboss\server\lc_turnkey\deploy\rmb-ds.xml 

해당 파일의 내용은 다음과 같습니다 : 나는 장소에서 -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에 다음과 같은 포함

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) 
:
<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을 배포 할 때마다, 그것은 다음과 같은 오류와 함께 실패

JNDI 바인딩 자체가 올바른지 100 % 확신합니다. 나는 웹 콘솔> 시스템> JMX 콩에 다음을 볼 수 있습니다> jboss.jdbc> jboss.jdbc : 서비스 = 메타 데이터는 데이터 소스는 = 나는이 서비스를 명중 프로세스를 만들 수 있습니다 라이브 사이클 워크 벤치를 사용하여,

MBean Name: Domain Name: jboss.jdbc 
service: metadata 
datasource: RMB_DS 
MBean Java Class: org.jboss.ejb.plugins.cmp.jdbc.metadata.DataSourceMetaData 

또한 RMB_DS 데이터 소스 java :/RMB_DS에 대해 일부 SQL을 실행합니다.

그렇다면 내 WAR 또는 web.xml에 문제가 있습니까? 나는 명백한 것을 놓치고 있는가?

답변

1

Ketan에게 감사드립니다.

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에 변경이있을 수 있습니다 : RMB-ds.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> 

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