jboss und "DefaultDS not bound"
turgar
- java
Hallo,
ich versuche mittels
InitialContext context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:/DefaultDS");
Connection conn = ds.getConnection();
eine Anbindung an die Standard-Datenbank meines jboss 4.2.2 zu erreichen.
Die dabei auftretende Exception lautet: "DefaultDS not bound" bzw. "javax.naming.NameNotFoundException: DefaultDS not bound".
Wie muss obiges Code-Fragment richtig lauten bzw. wie muss jboss konfiguriert werden, damit die Anbinung gelingt?
Danke!
Moin,
Wie muss obiges Code-Fragment richtig lauten bzw. wie muss jboss konfiguriert werden, damit die Anbinung gelingt?
Nach meinen Kenntnissen scheint das korrekt zu sein. Liegt im deploy-Verzeichnis deines Servers (bei der Standard-Installation default/deploy) eine hspqdb-ds.xml? Falls ja, steht dort auch DefaultDS als JNDI-Name drin? In dieser wird die Default-Datenquelle definiert.
Gruß
Stareagle
hallo,
Nach meinen Kenntnissen scheint das korrekt zu sein. Liegt im deploy-Verzeichnis deines Servers (bei der Standard-Installation default/deploy) eine hspqdb-ds.xml? Falls ja, steht dort auch DefaultDS als JNDI-Name drin? In dieser wird die Default-Datenquelle definiert.
das Ganze sieht bei mir im Moment so aus:
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- The Hypersonic embedded database JCA connection factory config
-->
- <!-- $Id: hsqldb-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $
-->
- <datasources>
- <local-tx-datasource>
- <!-- The jndi name of the DataSource, it is prefixed with java:/
-->
- <!-- Datasources are not available outside the virtual machine
-->
<jndi-name>DefaultDS</jndi-name>
- <!-- For server mode db, allowing other processes to use hsqldb over tcp.
This requires the org.jboss.jdbc.HypersonicDatabase mbean.
<connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
-->
- <!-- For totally in-memory db, not saved when jboss stops.
The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
<connection-url>jdbc:hsqldb:.</connection-url>
-->
- <!-- For in-process persistent db, saved when jboss stops.
The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
-->
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
- <!-- The driver class
-->
<driver-class>org.hsqldb.jdbcDriver</driver-class>
- <!-- The login and password
-->
<user-name>sa</user-name>
<password />
- <!-- example of how to specify class that determines if exception means connection should be destroyed
-->
- <!-- exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name
-->
- <!-- this will be run before a managed connection is removed from the pool for use by a client
-->
- <!-- <check-valid-connection-sql>select * from something</check-valid-connection-sql>
-->
- <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use
-->
<min-pool-size>5</min-pool-size>
- <!-- The maximum connections in a pool/sub-pool
-->
<max-pool-size>20</max-pool-size>
- <!-- The time before an unused connection is destroyed
-->
- <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use
-->
- <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections
-->
<idle-timeout-minutes>0</idle-timeout-minutes>
- <!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
- <!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
- <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
-->
- <!-- Whether to check all statements are closed when the connection is returned to the pool,
this is a debugging feature that should be turned off in production
-->
<track-statements />
- <!-- Use the getConnection(user, pw) for logins
<application-managed-security/>
-->
- <!-- Use the security domain defined in conf/login-config.xml
-->
<security-domain>HsqlDbRealm</security-domain>
- <!-- Use the security domain defined in conf/login-config.xml or the
getConnection(user, pw) for logins. The security domain takes precedence.
<security-domain-and-application>HsqlDbRealm</security-domain-and-application>
-->
- <!-- HSQL DB benefits from prepared statement caching
-->
<prepared-statement-cache-size>32</prepared-statement-cache-size>
- <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml
-->
- <metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
- <!-- When using in-process (standalone) mode
-->
<depends>jboss:service=Hypersonic,database=localDB</depends>
- <!-- Uncomment when using hsqldb in server mode
<depends>jboss:service=Hypersonic</depends>
-->
</local-tx-datasource>
- <!-- Uncomment if you want hsqldb accessed over tcp (server mode)
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic">
<attribute name="Port">1701</attribute>
<attribute name="BindAddress">${jboss.bind.address}</attribute>
<attribute name="Silent">true</attribute>
<attribute name="Database">default</attribute>
<attribute name="Trace">false</attribute>
<attribute name="No_system_exit">true</attribute>
</mbean>
-->
- <!-- For hsqldb accessed from jboss only, in-process (standalone) mode
-->
- <mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic,database=localDB">
<attribute name="Database">localDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>
</datasources>