Problem with Duke's bank example at chapter 4.1.7 (startguid
mfinke Aug 8, 2006 12:50 PMHi,
as many of us I am also a new to JBoss and started last week with the tutorial including the Duke Bank example. I download and unzip the two zip files in order to run the Duke example. Following the tutorial everything seems fine until I ran the ant -f jboss-build.xml db-create-table and ant -f jboss-build.xml db-insert statements.
The output on my console looks like this:
C:\Temp\Java\tutorial\j2eetutorial14\examples\bank>ant -f jboss-build.xml db-create-table
Buildfile: jboss-build.xml
db-create-table:
[java] update count 1
BUILD SUCCESSFUL
Total time: 0 seconds
C:\Temp\Java\tutorial\j2eetutorial14\examples\bank>ant -f jboss-build.xml db-insert
Buildfile: jboss-build.xml
db-insert:
[java] ScriptTool.init error: sql\insert.sql (The system cannot find the fi
le specified)
[java] java.io.FileNotFoundException: sql\insert.sql (The system cannot fin
d the file specified)
[java] at java.io.FileInputStream.open(Native Method)
[java] at java.io.FileInputStream.(FileInputStream.java:106)
[java] at java.io.FileInputStream.(FileInputStream.java:66)
[java] at java.io.FileReader.(FileReader.java:41)
[java] at org.hsqldb.util.ScriptTool.execute(Unknown Source)
[java] at org.hsqldb.util.ScriptTool.main(Unknown Source)
[java] java.lang.NullPointerException
[java] at org.hsqldb.util.ScriptTool.fileToString(Unknown Source)
[java] at org.hsqldb.util.ScriptTool.execute(Unknown Source)
[java] at org.hsqldb.util.ScriptTool.main(Unknown Source)
[java] Exception in thread "main" java.lang.RuntimeException
[java] at org.hsqldb.util.ScriptTool.fileToString(Unknown Source)
[java] at org.hsqldb.util.ScriptTool.execute(Unknown Source)
[java] at org.hsqldb.util.ScriptTool.main(Unknown Source)
[java] Java Result: 1
BUILD SUCCESSFUL
Total time: 0 seconds
I am not sure if I edit the hsqldb-ds.xml in the right way. It looks like:
<?xml version="1.0" encoding="UTF-8"?>
<!-- The Hypersonic embedded database JCA connection factory config -->
<!-- $Id: hsqldb-ds.xml,v 1.15.2.1 2006/01/10 18:11:03 dimitris Exp $ -->
<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>
-->
<!-- mfinke 040806 -->
<connection-url>jdbc:hsqldb:hsql://localhost: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></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 (optional) -->
<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>