2012-02-16 2 views
2

제대로 작동하려면 JBoss 7.0.2에서 데이터 소스의 JNDI 조회를받는 데 문제가 있습니다. 기본적으로이 응용 프로그램은 여러 응용 프로그램 서버에 배포 할 수 있어야하므로 적합한 표준을 따르고 싶습니다. 문제의 애플리케이션은 Jboss 관리 도메인에서 실행되는 Liferay 6.1에 배포 된 간단한 포틀릿 애플리케이션입니다. web.xml, jboss-web.xml 및 persistence.xml에서 명명 규칙의 다양한 조합을 시도했습니다. 모두 소용 없다. 내 현재의 구성은 다음과 같습니다JBoss 7.0.2에서 JNDI 조회로 NameNotFoundException이 발생합니다.

봄의 persistence.xml을 :

<jee:jndi-lookup id="surveyDS" jndi-name="jdbc/surveyDS" resource-ref="true" /> 

의 web.xml :

<?xml version="1.0"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" id="WebApp_ID" version="2.4"> 
    ... 
    <resource-ref> 
     <res-ref-name>jdbc/surveyDS</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
     <res-sharing-scope>Shareable</res-sharing-scope> 
    </resource-ref> 
</web-app> 

의 jboss-web.xml의 :의

<?xml version="1.0"?> 
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd"> 
<jboss-web> 
    <resource-ref> 
     <res-ref-name>jdbc/surveyDS</res-ref-name> 
     <jndi-name>java:jboss/datasources/surveyDS</jndi-name> 
    </resource-ref> 
</jboss-web> 

데이터 소스 정의 $ {JBOSS_HOME} /domain/configuration/domain.xml :

<datasource jndi-name="java:jboss/datasources/surveyDS" pool-name="TestDSPool" enabled="true" jta="true" use-java-context="true" use-ccm="true"> 
    <connection-url>****</connection-url> 
    <driver>com.mysql</driver> 
    <pool> 
     <prefill>false</prefill> 
     <use-strict-min>false</use-strict-min> 
     <flush-strategy>FailingConnectionOnly</flush-strategy> 
    </pool> 
    <security> 
     <user-name>****</user-name> 
     <password>****</password> 
    </security> 
</datasource> 

포틀릿 응용 프로그램을 배포하면 정상적으로 작동합니다. 실제로 포틀릿을 보려고 할 때 그러나, 나는 다음과 같은 예외 얻을 :

15:10:05,493 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/survey-portlets].[surveydisplay Servlet]] (ajp--0.0.0.0-8009-3) Servlet.service() for servlet surveydisplay Servlet threw exception: javax.naming.NameNotFoundException: jdbc/surveyDS -- service jboss.naming.context.java.jdbc.surveyDS 
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:87) 
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:173) 
    at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:47) 
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:209) 
    at javax.naming.InitialContext.lookup(InitialContext.java:392) [:1.6.0_26] 
    at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:154) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:104) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187) [org.springframework.context-3.0.5.RELEASE.jar:] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) [org.springframework.beans-3.0.5.RELEASE.jar:] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) [org.springframework.beans-3.0.5.RELEASE.jar:] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) [org.springframework.beans-3.0.5.RELEASE.jar:] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [org.springframework.beans-3.0.5.RELEASE.jar:] 
[ ... stack truncated for brevity ] 

나는이 시점에서 매우 간단하고 분명 뭔가 빠진해야 같은 느낌을,하지만 난 그게 될 일을 아무 생각이 없습니다. 어떤 제안이라도 대단히 감사하겠습니다!

답변

0

JBoss domain.xml 파일의 DataSource jndi-name을 java:jdbc/surveyDS으로 변경하면 문제가 없습니다.

관련 문제