Welcome Guest  |  Register  |  Login
Login Name Password
  Search  
  Index  | Recent Threads  | Unanswered Threads  | Who's Online  | User List  | Help


Quick Go »

No member browsing this thread
Thread Status: Active
Total posts in this thread: 8
[ Jump to Last Post ]
Post new Thread
Author
Previous Thread This topic has been viewed 1008 times and has 7 replies Next Thread
Male phineas919
Newbie




Joined: Aug 18, 2009
Post Count: 3
Status: Offline
Reply to this Post  Reply with Quote 
running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

I'm trying to get started with DataNucleus 1.1.5, and when I run the SchemaTool (using the Eclipse DataNucleus 1.0.0.m2 plugin in Eclipse 3.5) I get the following exception:

-----
DataNucleus SchemaTool (version 1.1.5) : Creation of the schema
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at javax.jdo.JDOHelper$18.run(JDOHelper.java:1944)
at java.security.AccessController.doPrivileged(Native Method)
at javax.jdo.JDOHelper.forName(JDOHelper.java:1941)
at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1152)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:800)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:695)
at org.datanucleus.store.rdbms.SchemaTool.getPMFForMode(SchemaTool.java:491)
at org.datanucleus.store.rdbms.SchemaTool.main(SchemaTool.java:231)
-----

I have the following in my CLASSPATH:

asm-3.2.jar
datanucleus-core-1.1.5.jar
datanucleus-enhancer-1.1.4.jar (there seems to be no 1.1.5 jar)
datanucleus-rdbms-1.1.5.jar
jdo-api-2.3-ea.jar (also happens with jdo-api-2.2.jar)
log4j-1.2.15.jar
mysql-connector-java-5.1.8-bin.jar

The jars from version 1.1.4 have another problem:

-----
Exception in thread "main" java.lang.IllegalArgumentException: no such option dumpDdl
at org.datanucleus.util.CommandLine.hasOption(CommandLine.java:246)
at org.datanucleus.store.rdbms.SchemaTool.setCommandLineArgs(SchemaTool.java:856)
at org.datanucleus.store.rdbms.SchemaTool.main(SchemaTool.java:137)
-----

This second problem is already fixed in 1.1.5 (http://www.jpox.org/servlet/jira/browse/NUCRDBMS-199), but I can't use it because of the NoClassDefFoundError. How can I fix this?
[Aug 18, 2009 2:49:16 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male andy
Expert
Member's Avatar

UK
Joined: Mar 13, 2004
Post Count: 5233
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

Perhaps if you look at the release notes of 1.1.5, e.g "core" you may find some change to JDO2.3 jar, as per what was released in the zip file distributions.
----------------------------------------
-Andy smile

[Aug 19, 2009 7:50:50 AM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male phineas919
Newbie




Joined: Aug 18, 2009
Post Count: 3
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

Thanks, I found jdo2-api-2.3-eb.jar in datanucleus-accessplatform-full-deps-1.1.5.zip, put it in the CLASSPATH in place of jdo2-api-2.3-ea.jar and that solved the problem.

However, I must be missing something, but I didn't find a release notes file after looking in the following places:

- in the datanucleus core download directory at http://sourceforge.net/projects/datanucleus/files/datanucleus-core/1.1.5/)
- in datanucleus-core-1.1.5-src.zip
- in the documentation at http://www.datanucleus.org/products/accessplatform/index.html
- on sourceforge's release notes page at http://sourceforge.net/project/shownotes.php?release_id=696434
- on the wiki release page at http://www.jpox.org/servlet/wiki/display/ENG/Release+and+Plans

There was only LICENSE.TXT, NOTICE.TXT, README.BUILD and README.TXT, none of which contained the information. I saw on the Apache JDO pages (http://db.apache.org/jdo/) that this change had been made in the source, but wasn't in the latest available download on that site.

Maybe the release notes should be placed next to the downloads for each plugin? But thanks for the tip...
----------------------------------------
[Edit 1 times, last edit by phineas919 at Aug 19, 2009 9:06:22 AM]
[Aug 19, 2009 9:05:28 AM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male andy
Expert
Member's Avatar

UK
Joined: Mar 13, 2004
Post Count: 5233
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

If people want to look in many odd places (IMHO) then that is up to them at the end of the day. No matter where I put release info someone will look elsewhere. All projects I know of are managed using JIRA (or equivalent). DataNucleus is no different. Announcements of releases are placed on the forum, just like http://www.jpox.org/servlet/forum/viewthread_thread,5669 and say clearly refer to JIRA for details. Similarly under News on SF, which says consult JIRA for more information. Downloads on the website points to our M2 repo and there you can easily find any releases of jdo2-api when Apache JDO is too inefficient to release it themselves. Simples.

Obviously if people want better they could be commercial clients.
----------------------------------------
-Andy smile

[Aug 19, 2009 9:59:00 AM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male christian.fischer
Novice




Joined: Apr 17, 2009
Post Count: 27
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

use jdo2-api-2.3-eb

<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo2-api</artifactId>
<version>2.3-eb</version>
<type>jar</type>
</dependency>

from http://www.datanucleus.org/downloads/maven2/

pls change Topic to [Solved]
----------------------------------------
I Wouldn't do whtat i couldn't say.
*dough*
[Aug 20, 2009 12:47:40 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male blurpo
Newbie



Spain
Joined: Feb 3, 2010
Post Count: 2
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

The question that remains for me though is this point, quoting phineas919: "... on the Apache JDO pages (http://db.apache.org/jdo/) ... this change had been made in the source, but wasn't in the latest available download on that site."

The point is, the jdo2-api-2.3 jar you download from db.apache.org/jdo does not contain the class javax.jdo.metadata.TypeMetadata and the jar that you download from datanucleus.org, does. Please excuse my ignorance, but what's this with jdo2-api-2.3-ea, -eb, -ec.jar? On apache.org they offer -ea (which I read to be Early Access), on datanucleus.org there are -eb.jar and -ec.jar.

How come the difference? Where does this class come from?

To be able to include this jar as an external library I need to be able to defend what jars I'm proposing and it would be good if I understood what they are...
Thanks a lot.
[Feb 3, 2010 3:34:01 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male andy
Expert
Member's Avatar

UK
Joined: Mar 13, 2004
Post Count: 5233
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

As has been said in other posts, and also in the docs to some degree, all ea, eb, ec jars are built from SVN trunk of Apache JDO. The -ea is their "early access", but sadly, being an Apache project, they don't provide an efficient release process and so have not made any releases since, so we provide a the -eb and -ec snapshot jars for them as two timepoints after that. As can be seen from (public) Apache JDO SVN they decided to rename ComponentMetadata to TypeMetadata after the ea release.

Obviously, if this is an issue for you, then you could offer your time to that project to make timely releases, something that we'd be grateful for ...
----------------------------------------
-Andy smile

[Feb 3, 2010 4:27:13 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male blurpo
Newbie



Spain
Joined: Feb 3, 2010
Post Count: 2
Status: Offline
Reply to this Post  Reply with Quote 
Re: running SchemaTool gives java.lang.NoClassDefFoundError: javax/jdo/metadata/TypeMetadata

Thank you!

In my case, and perhaps in other cases, is that I had not expected to need a not-yet-released version of Apache JDO. The error reported in the post occurs if you use 2.2 -- their latest stable release. I was actually convinced that "required dependencies" page for DataNucleus said JDO version 2.2, which it does not, it says 2.3-ec.

With respect to offering to making releases for the JDO project, next time I have some time to spare I'll consider it.

In any case, thanks again.
[Feb 5, 2010 10:02:29 AM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
[ Jump to Last Post ]
Show Printable Version of Thread  Post new Thread