Hi All,
I would like to run a JPA Derby packaged tutorial in MySQL. This pre-configured
exercise runs fine with Derby using Ant built script. However, it would failed
to build after having attempted to replace the Derby properties with MySQL.
Below are some configuration files used by this exercise:
1. C:\ProJPA2\examples\Chapter2\employeeService\build.xml
2. <?xml version="1.0" encoding="iso-8859-1"?>
3.
4. <project name="example" default="run">
5.
6. <property file="../../../config/common.properties"/>
7. <import file="../../../config/common.xml" />
8.
9.
<target name="run" depends="init,build,run_sql,run_client,clean" />
10.
<target name="interactive_client" depends="init,build,run_sql,run_interactive_client,clean" />
11.
12. <target name="init">
13. <property name="example_name" value="employeeService_ch2" />
14. <property name="DB_NAME" value="EmpServDB" />
15. </target>
16.
17. <target name="build" depends="setup,build_jar">
18. <javac srcdir="src/client" destdir="build/client" debug="on">
19. <classpath>
20. <pathelement path="${J2EE_CLASSPATH}" />
21. <pathelement location="dist/lib/${example_name}.jar" />
22. </classpath>
23. </javac>
24. <jar jarfile="dist/${example_name}_client.jar" update="yes">
25. <fileset dir="build/client"/>
26. </jar>
27. </target>
28.
29. <target name="run_client">
30. <java classname="examples.client.EmployeeTest" fork="true">
31.
<sysproperty key="derby.system.home" value="${DERBY_SYSTEM_HOME}"/>
32. <classpath>
33. <pathelement location="dist/lib/${example_name}.jar" />
34.
<pathelement location="dist/${example_name}_client.jar" />
35. <pathelement path="${CLIENT_CLASSPATH}"/>
36. </classpath>
37. </java>
38. </target>
39.
40. <target name="run_interactive_client" depends="setup">
41.
<java classname="examples.client.EmployeeTestInteractive" fork="true">
42.
<sysproperty key="derby.system.home" value="${DERBY_SYSTEM_HOME}"/>
43. <sysproperty key="ddl-generation" value="dropandcreate"/>
44. <classpath>
45. <pathelement location="dist/lib/${example_name}.jar" />
46.
<pathelement location="dist/${example_name}_client.jar" />
47. <pathelement path="${CLIENT_CLASSPATH}"/>
48. </classpath>
49. </java>
50. </target>
51. </project>
52.
53. C:\ProJPA2\Config\common.properties
54.
55. ##################################################
56. # Installation properties
57. ##################################################
58.
59. EXAMPLES_HOME="C:/ProJPA2"
60. SERVER_HOME=C:/glassfish3
61.
62. ##################################################
63. # Glassfish properties
64. ##################################################
65.
66. ADMIN_USER=admin
67.
68. PASSWORD_PREFIX=
69. PASSWORD_FILE=
70.
71. # Uncomment out the following 2 lines if GlassFish was installed with an
72. # admin password, and enter the password in the password.txt file.
73. #PASSWORD_PREFIX=--passwordfile
74. #PASSWORD_FILE="${EXAMPLES_HOME}/config/password.txt"
75.
76. ##################################################
77. # Derby Database properties
78. ##################################################
79.
80. DERBY_INSTALL=${SERVER_HOME}/javadb
81. DERBY_PORT=1527
82. DERBY_HOST=localhost
83. DERBY_USER=APP
84. DERBY_PWD=APP
85. DERBY_SYSTEM_HOME=${EXAMPLES_HOME}/database
86.
DERBY_CLASSPATH=${DERBY_INSTALL}/lib/derby.jar;${DERBY_INSTALL}/lib/derbynet.jar;${DERBY_INSTALL}/lib/derbyclient.jar;${DERBY_INSTALL}/lib/derbytools.jar
87.
88. ##################################################
89. # Additional library properties
90. ##################################################
91.
92.
ECLIPSELINK_CLASSPATH=${SERVER_HOME}/glassfish/modules/javax.persistence.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.oracle.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.core.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.jpa.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.asm.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.antlr.jar;${SERVER_HOME}/glassfish/modules/org.eclipse.persistence.jpa.modelgen.jar;
93.
SPRING_CLASSPATH=${EXAMPLES_HOME}/lib/spring.jar;${EXAMPLES_HOME}/lib/commons-logging.jar
94. J2EE_CLASSPATH=${SERVER_HOME}/glassfish/lib/javaee.jar
95. JPA_CLASSPATH=${SERVER_HOME}/glassfish/modules/javax.persistence.jar
96.
#CLIENT_CLASSPATH=${ECLIPSELINK_CLASSPATH};${J2EE_CLASSPATH};${DERBY_CLASSPATH}
97.
CLIENT_CLASSPATH=${ECLIPSELINK_CLASSPATH};${J2EE_CLASSPATH};E:/Oracle/glassfish-persistence-installer-v2.1-b60.jar;E:/Oracle/mysql-connector-java-5.1.6-bin.jar;
98.
99. C:\ProJPA2\examples\Chapter2\employeeService\run.bat
100. @echo OFF
101. call %ANT_HOME%/bin/ant %1
102.
103.
C:\ProJPA2\examples\Chapter2\employeeService\etc\persistence\META-INF\persistence.xml
104.
105.
Changed the content from
106.
107.
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
108.
<persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL">
109. <class>examples.model.Employee</class>
110. <validation-mode>NONE</validation-mode>
111. <properties>
112.
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
113.
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/EmpServDB;create=true"/>
114.
<property name="javax.persistence.jdbc.user" value="APP"/>
115.
<property name="javax.persistence.jdbc.password" value="APP"/>
116.
<!-- enable this property to see SQL and other logging -->
117.
<!-- property name="eclipselink.logging.level" value="FINE"/ -->
118. </properties>
119. </persistence-unit>
120. </persistence>
121.
122.
to
123.
124. <?xml version="1.0" encoding="UTF-8"?>
125.
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
126.
<persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL">
127.
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
128. <shared-cache-mode>ALL</shared-cache-mode>
129. <validation-mode>NONE</validation-mode>
130. <properties>
131.
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
132.
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/EmployeeDB"/>
133.
<property name="javax.persistence.jdbc.password" value="abcdefg"/>
134.
<property name="javax.persistence.jdbc.user" value="applicationuser"/>
135.
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
136.
<!-- enable this property to see SQL and other logging -->
137.
<property name="eclipselink.logging.level" value="FINE"/>
138. </properties>
139. </persistence-unit>
140. </persistence>
Also tried to include the latest EclipseJPA
(E:/Oracle/glassfish-persistence-installer-v2.1-b60.jar) & MySQL JDBCdriver
(E:/Oracle/mysql-connector-java-5.1.6-bin.jar) in CLIENT_CLASSPATH of
common.properties file. This same example would run properly after having built
it into Netbeans 6.9.1 project which include these jar files in its CLASSPATH.
Some system environmental variables used by Java & Ant are:
ANT_HOME=C:\Ant\apache-ant-1.8.2
CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20
Path=C:\Program
Files\Java\jdk1.6.0_20\bin;C:\Ant\apache-ant-1.8.2\bin;C:\Program
Files\MySQL\MySQL Server 5.1\bin;C:\glassfish3\bin;C:\glassfish3\glassfish\bin
However, the following exception kept occurring and I am can do with some
advice
on how to correctly update these configuration files in order to persist the
data into MySQL:
1. C:\ProJPA2\examples\Chapter2\employeeService>dir
2. Volume in drive C has no label.
3. Volume Serial Number is 6473-5938
4.
5. Directory of C:\ProJPA2\examples\Chapter2\employeeService
6.
7. 10/02/2011 05:31 PM <DIR> .
8. 10/02/2011 05:31 PM <DIR> ..
9. 30/01/2010 11:03 PM 2,022 build - original.bak
10. 30/01/2010 11:03 PM 2,022 build.xml
11. 01/02/2011 04:33 PM <DIR> etc
12. 09/02/2011 05:49 PM <DIR> lib
13. 09/02/2011 05:21 PM 42 run.bat
14. 07/01/2010 06:02 PM 52 runInteractive.bat
15. 01/02/2011 04:33 PM <DIR> src
16. 4 File(s) 4,138 bytes
17. 5 Dir(s) 13,030,256,640 bytes free
18.
19. C:\ProJPA2\examples\Chapter2\employeeService>run.bat
20. Buildfile: C:\ProJPA2\examples\Chapter2\employeeService\build.xml
21.
22. init:
23.
24. setup:
25.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\build\model
26.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\build\client
27.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\build\test
28.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\build\servlet\WEB-INF\classes
29.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\dist
30.
[mkdir] Created dir: C:\ProJPA2\examples\Chapter2\employeeService\dist\lib
31.
32. build_jar:
33.
[copy] Copying 2 files to C:\ProJPA2\examples\Chapter2\employeeService\build\model
34.
[javac] C:\ProJPA2\config\common.xml:38: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
35.
[javac] Compiling 2 source files to C:\ProJPA2\examples\Chapter2\employeeService\build\model
36.
[javac] Note: C:\ProJPA2\examples\Chapter2\employeeService\src\model\examples\model\EmployeeService.java uses unchecked or unsafe operations.
37. [javac] Note: Recompile with -Xlint:unchecked for details.
38.
[jar] Building jar: C:\ProJPA2\examples\Chapter2\employeeService\dist\lib\employeeService_ch2.jar
39.
40. build:
41.
[javac] C:\ProJPA2\examples\Chapter2\employeeService\build.xml:17: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
42.
[javac] Compiling 2 source files to C:\ProJPA2\examples\Chapter2\employeeService\build\client
43.
[jar] Building jar: C:\ProJPA2\examples\Chapter2\employeeService\dist\employeeService_ch2_client.jar
44.
45. run_sql:
46.
47. BUILD FAILED
48.
C:\ProJPA2\config\common.xml:144: java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server localhost on port 152
49. 7 with message Connection refused: connect.
50.
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
51.
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
52. at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
53.
at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
54.
at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:942)
55.
at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:614)
56.
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
57. at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
58.
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
59. at java.lang.reflect.Method.invoke(Method.java:597)
60.
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
61. at org.apache.tools.ant.Task.perform(Task.java:348)
62. at org.apache.tools.ant.Target.execute(Target.java:390)
63. at org.apache.tools.ant.Target.performTasks(Target.java:411)
64.
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
65. at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
66.
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
67. at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
68. at org.apache.tools.ant.Main.runBuild(Main.java:809)
69. at org.apache.tools.ant.Main.startAnt(Main.java:217)
70. at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
71. at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
72.
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.
73. at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
74.
at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
75. at org.apache.derby.client.am.Connection.<init>(Unknown Source)
76.
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
77.
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
78.
at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)
79. ... 20 more
80. Caused by: java.net.ConnectException: Connection refused: connect
81. at java.net.PlainSocketImpl.socketConnect(Native Method)
82. at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
83.
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
84. at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
85. at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
86. at java.net.Socket.connect(Socket.java:529)
87. at java.net.Socket.connect(Socket.java:478)
88. at java.net.Socket.<init>(Socket.java:375)
89. at java.net.Socket.<init>(Socket.java:189)
90.
at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:206)
91.
at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
92. at java.security.AccessController.doPrivileged(Native Method)
93. ... 26 more
The issue is how to replace Derbyproperties & driver with MySQL equivalents.
C:\ProJPA2\examples\Chapter2\employeeService\etc\sql\db.sql is made up of:
DROP TABLE EMPLOYEE;
CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(255), SALARY BIGINT,
NUMBER INTEGER, PRIMARY KEY (ID));
Also C:\ProJPA2\examples\Chapter2\employeeService\lib is made up of the
following files:
eclipselink.jar,
glassfish-persistence-installer-v2.1-b60.jar,
mysql-connector-java-5.1.6-bin.jar.
I am running JDK1.6.0_20, GF3.1, Ant 1.8.2 on Windows XP.
Your suggestion would be much appreciated.
Thanks,
Jack
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]