2013-04-24 3 views
1

Я создал проект GWT с причалом, и я использую JNDI для источника данных. Когда я запускаю приложение GWT, все работает нормально, но когда я копирую файл .war в JBoss и запускаю его, имею ошибку. JBoss версия - 4.2.3.GAJBoss - Не удалось разыменовать объект

javax.naming.NamingException: Could not dereference object [Root exception is 
javax.naming.NameNotFoundException: jdbc not bound] at 
org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1215) at 
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:758) at 
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:774) at 
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) at 
javax.naming.InitialContext.lookup(InitialContext.java:392) at 

JBoss-web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <resource-ref> 
     <res-ref-name>jdbc/base</res-ref-name> 
     <jndi-name>jdbc/base</jndi-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 
</jboss-web> 

Пристань-env.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<Configure class="org.mortbay.jetty.webapp.WebAppContext"> 
<New id="base" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg>jdbc/base</Arg> 
    <Arg> 
    <New class="org.apache.tomcat.jdbc.pool.DataSource"> 
      <Set name="driverClassName">org.postgresql.Driver</Set> 
      <Set name="url">jdbc:postgresql://database/test</Set> 
      <Set name="username">user</Set> 
      <Set name="password">password</Set> 
      <Set name="maxActive">10</Set> 
      <Set name="maxIdle">4</Set> 
    </New> 
    </Arg> 
</New> 
</Configure> 

web.xml

<resource-ref> 
    <description>My DataSource Reference</description> 
    <res-ref-name>jdbc/base</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

ПриветствиеServiceImpl.java

 InitialContext ic = new InitialContext(); 
     DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/base"); 
     Connection con = ds.getConnection(); 

Что случилось? Спасибо за помощь

ответ

1

Я решил свою проблему. Я создал базу-ds.xml

<datasources> 
    <local-tx-datasource> 
     <jndi-name>jdbc/base</jndi-name> 
     <connection-url>jdbc:postgresql://database/test</connection-url> 
     <driver-class>org.postgresql.Driver</driver-class> 
     <user-name>user</user-name> 
     <password>password</password> 
     <min-pool-size>4</min-pool-size> 
     <max-pool-size>10</max-pool-size> 
    </local-tx-datasource> 
</datasources> 

и я изменил JNDI-имя в JBoss-web.xml

<jndi-name>java:/jdbc/base</jndi-name> 

Как подключить Tomcat пул соединений для этого источника данных в JBoss?