You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Joisten, Andreas (GE Infra, Energy)" <an...@ge.com> on 2008/03/03 14:15:09 UTC
fail install Derby
Dear derby-dev,
My name is Andreas Joisten, and I do work as a Product Specialist for GE Energy, Germany Ratingen.
Among other products, we develop and market a Mobile GIS (please see http://www.gepower.com/prod_serv/products/gis_software/en/field_infosys.htm), which we now want to make available for PocketPcs, therefore we are keen to test CrEme 4.12 as the JVM.
We normally use the Cloudscape database and here I decided for Derby 10.2.20, as this Version supports J2ME.
At first I tested with Eclipse 3.2, you can see the structure of my project. I can create a database and tables. This test is fine.
See EclipseStructure.jpg
##############################
Then I want to install Derby on my PocketPc. I have copied the Derby.jar, derbytool.jar and jdbcPackage.jar in the folder \windows\CrEme\lib.
After that, I built a new jar with my test-class "DerbyVersion1.java". I also define this class as the main-class for the jar.
Although it is the same code, it does not run on my PocketPc.
I get this Error Message:
Main class: DerbyVersion1
-jar: jar fie /JarFiles/derbyVersion1.jar not found: java.lang.reflect.InvocationTargetException
################################
Then I try an other way. I thought, that the classpath ist wrong, so I create a folder with all *,jar and biuld the following link:
255#"\windows\CrEme\bin\CrEme.exe" -Of -classpath'\MyLib\derby.jar'; '\MyLib\derbytools.jar'; '\MyLib\jdbcPackage.jar' -jar \JarFiles\versionDerby1.jar DerbyVersion1
Now, I get this error message:
NSIcom Ltd., CrEme(tm) Evaluation Version
CrE-ME J2ME(tm)
CrE-ME V4.12 B142.190307 19-March-2007
MemoryLimit=29056Kb
EBCI(TM) Interpreter V1.00,
Copyright 1998-2002 by Bytecodes, Inc.
java.lang.IncompatibleClassChangeError: Unimplemented interface method
at org.apache.derby.jdbc.InternalDriver.connect()
at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
at DerbyVersion1.runDemo()
at DerbyVersion1.main()
Why runs Derby in Eclipse and not on my PocketPc?
But it does not run either.
Please explain my mistake! What can I do better?
Best regards and Thanks a lot
Andreas Joisten, GE Energy
andreas.joisten@ge.com
Re: fail install Derby
Posted by John Embretsen <Jo...@Sun.COM>.
Joisten, Andreas (GE Infra, Energy) wrote:
> [snip] we now want to make available for PocketPcs, therefore we are keen to test CrEme 4.12 as the JVM.
>
> We normally use the Cloudscape database and here I decided for Derby 10.2.20, as this Version supports J2ME.
[snipped more details]
> I get this Error Message:
>
> Main class: DerbyVersion1
> -jar: jar fie /JarFiles/derbyVersion1.jar not found: java.lang.reflect.InvocationTargetException
[snip]
> NSIcom Ltd., CrEme(tm) Evaluation Version
> CrE-ME J2ME(tm)
> CrE-ME V4.12 B142.190307 19-March-2007
> MemoryLimit=29056Kb
> EBCI(TM) Interpreter V1.00,
> Copyright 1998-2002 by Bytecodes, Inc.
> java.lang.IncompatibleClassChangeError: Unimplemented interface method
> at org.apache.derby.jdbc.InternalDriver.connect()
> at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
> at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
> at DerbyVersion1.runDemo()
> at DerbyVersion1.main()
> Why runs Derby in Eclipse and not on my PocketPc?
Because Java ME JVMs are different beasts than Java SE JVMs...
What does sysinfo report under "Derby Information"? If it does not mention J2ME
it could be that your version of Derby does not recognize the CrEme VM as a Java
ME (J2ME) VM, and thus tries to use code designed to work with non-ME platforms.
See the "Tips and Tricks" section of
http://wiki.apache.org/db-derby/JavaMESupport for details.
You could try a newer version of Derby (some changes were made in this area for
10.3.2.1), but then CDC 1.1 support is required.
--
John
Re: fail install Derby
Posted by Myrna van Lunteren <m....@gmail.com>.
On 3/3/08, Joisten, Andreas (GE Infra, Energy) <an...@ge.com> wrote:
> Dear derby-dev,
> At first I tested with Eclipse 3.2, you can see the structure of my project. I can create a database and tables. This test is fine.
>
...
> Then I want to install Derby on my PocketPc. I have copied the Derby.jar, derbytool.jar and jdbcPackage.jar in the folder \windows\CrEme\lib.
>
> After that, I built a new jar with my test-class "DerbyVersion1.java". I also define this class as the main-class for the jar.
>
> Although it is the same code, it does not run on my PocketPc.
>
>
> I get this Error Message:
>
> Main class: DerbyVersion1
> -jar: jar fie /JarFiles/derbyVersion1.jar not found: java.lang.reflect.InvocationTargetException
>
I can't help you much with this one...but...
> Then I try an other way. I thought, that the classpath ist wrong, so I create a folder with all *,jar and biuld the following link:
>
>
> 255#"\windows\CrEme\bin\CrEme.exe" -Of -classpath'\MyLib\derby.jar'; '\MyLib\derbytools.jar'; '\MyLib\jdbcPackage.jar' -jar \JarFiles\versionDerby1.jar DerbyVersion1
>
> Now, I get this error message:
>
....
> java.lang.IncompatibleClassChangeError: Unimplemented interface method
> at org.apache.derby.jdbc.InternalDriver.connect()
> at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
> at org.apache.derby.jdbc.EmbeddedSimpleDataSource.getConnection()
> at DerbyVersion1.runDemo()
> at DerbyVersion1.main()
>
>
> Why runs Derby in Eclipse and not on my PocketPc?
>
I think you have missed a detail - on the PocketPC, your JVM is *not*
the same as with eclipse. On the PocketPC, the J2ME jvm is based (but
not identical to) the 1.4. specification. You will need to compile (I
used my 1.5 jvm) your app specifying -source 1.4 -target 1.4, like so:
javac -source 1.4 -target 1.4 DerbyVersion1.java
I think that will work for you - it worked for me.
Myrna