Page 1 of 1

Exception in thread "main" java.lang.NoClassDefFoundError

PostPosted: Tue Oct 22, 2013 1:03 pm
by scanf
Hi,


While trying this out on a Linux box, I have the following error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/restlet/service/StatusService

I also set
export SERVIIO_HOME=/usr/local/serviio-1.3.1
but it doesn't matter. Here is a full -x

++ dirname /usr/local/serviio-1.3.1/bin/serviio.sh
+ DIRNAME=/usr/local/serviio-1.3.1/bin
++ basename /usr/local/serviio-1.3.1/bin/serviio.sh
+ PROGNAME=serviio.sh
+ cygwin=false
+ darwin=false
+ linux=false
+ case "`uname`" in
++ uname
+ linux=true
+ false
+ '[' x/usr/local/serviio-1.3.1 = x ']'
+ export SERVIIO_HOME
+ '[' x = x ']'
+ '[' x/usr/lib/jvm/java-6-sun-1.6.0.26 '!=' x ']'
+ JAVA=/usr/lib/jvm/java-6-sun-1.6.0.26/bin/java
+ SERVIIO_CLASS_PATH='/usr/local/serviio-1.3.1/lib/*:/usr/local/serviio-1.3.1/config'
+ JAVA_OPTS='-Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dderby.system.home=/usr/local/serviio-1.3.1/library -Dserviio.home=/usr/local/serviio-1.3.1'
+ false
+ /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -Xmx512M -Xms20M -XX:+UseParNewGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dderby.system.home=/usr/local/serviio-1.3.1/library -Dserviio.home=/usr/local/serviio-1.3.1 -classpath '/usr/local/serviio-1.3.1/lib/*:/usr/local/serviio-1.3.1/config' org.serviio.MediaServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/restlet/service/StatusService
at org.serviio.MediaServer.main(MediaServer.java:112)
Caused by: java.lang.ClassNotFoundException: org.restlet.service.StatusService
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more


Looks like the Linux Serviio 1.31 is missing jar files for the Restlet toolkit they use? Please advise.

Re: Exception in thread "main" java.lang.NoClassDefFoundErro

PostPosted: Tue Oct 22, 2013 10:27 pm
by zip
The jar files are there. It might be the Linux java doesn't work properly with the * class path notation, so you might have to add all the jar files to the class path list.

Re: Exception in thread "main" java.lang.NoClassDefFoundErro

PostPosted: Fri Oct 25, 2013 10:43 am
by scanf
Wouldn't be my first thought, as CLASSPATH wildcards are equally supported under Windows and Linux:
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html


Anyway as you suggest:

+ DIRNAME=/usr/local/serviio-1.3.1/bin
++ basename /usr/local/serviio-1.3.1/bin/serviio.sh
+ PROGNAME=serviio.sh
+ cygwin=false
+ darwin=false
+ linux=false
+ case "`uname`" in
++ uname
+ linux=true
+ false
+ '[' x/usr/local/serviio-1.3.1 = x ']'
+ export SERVIIO_HOME
+ '[' x = x ']'
+ '[' x/usr/lib/jvm/java-6-sun-1.6.0.26 '!=' x ']'
+ JAVA=/usr/lib/jvm/java-6-sun-1.6.0.26/bin/java
+ SERVIIO_CLASS_PATH=/usr/local/serviio-1.3.1/lib/commons-io.jar:/usr/local/serviio-1.3.1/lib/concurrent.jar:/usr/local/serviio-1.3.1/lib/derby.jar:/usr/local/serviio-1.3.1/lib/freemarker.jar:/usr/local/serviio-1.3.1/lib/gson.jar:/usr/local/serviio-1.3.1/lib/jaudiotagger.jar:/usr/local/serviio-1.3.1/lib/jcl-over-slf4j.jar:/usr/local/serviio-1.3.1/lib/jcs.jar:/usr/local/serviio-1.3.1/lib/jdom.jar:/usr/local/serviio-1.3.1/lib/jul-to-slf4j.jar:/usr/local/serviio-1.3.1/lib/log4j.jar:/usr/local/serviio-1.3.1/lib/org.restlet.ext.net.jar:/usr/local/serviio-1.3.1/lib/org.restlet.ext.xstream.jar:/usr/local/serviio-1.3.1/lib/rome.jar:/usr/local/serviio-1.3.1/lib/rome-modules.jar:/usr/local/serviio-1.3.1/lib/serviio-client.jar:/usr/local/serviio-1.3.1/lib/serviio.jar:/usr/local/serviio-1.3.1/lib/serviio-media-browser.jar:/usr/local/serviio-1.3.1/lib/slf4j-api.jar:/usr/local/serviio-1.3.1/lib/slf4j-log4j12.jar:/usr/local/serviio-1.3.1/lib/xstream.jar:/usr/local/serviio-1.3.1/config
+ JAVA_OPTS='-Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dderby.system.home=/usr/local/serviio-1.3.1/library -Dserviio.home=/usr/local/serviio-1.3.1'
+ false
+ /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -classpath /usr/local/serviio-1.3.1/lib/commons-io.jar:/usr/local/serviio-1.3.1/lib/concurrent.jar:/usr/local/serviio-1.3.1/lib/derby.jar:/usr/local/serviio-1.3.1/lib/freemarker.jar:/usr/local/serviio-1.3.1/lib/gson.jar:/usr/local/serviio-1.3.1/lib/jaudiotagger.jar:/usr/local/serviio-1.3.1/lib/jcl-over-slf4j.jar:/usr/local/serviio-1.3.1/lib/jcs.jar:/usr/local/serviio-1.3.1/lib/jdom.jar:/usr/local/serviio-1.3.1/lib/jul-to-slf4j.jar:/usr/local/serviio-1.3.1/lib/log4j.jar:/usr/local/serviio-1.3.1/lib/org.restlet.ext.net.jar:/usr/local/serviio-1.3.1/lib/org.restlet.ext.xstream.jar:/usr/local/serviio-1.3.1/lib/rome.jar:/usr/local/serviio-1.3.1/lib/rome-modules.jar:/usr/local/serviio-1.3.1/lib/serviio-client.jar:/usr/local/serviio-1.3.1/lib/serviio.jar:/usr/local/serviio-1.3.1/lib/serviio-media-browser.jar:/usr/local/serviio-1.3.1/lib/slf4j-api.jar:/usr/local/serviio-1.3.1/lib/slf4j-log4j12.jar:/usr/local/serviio-1.3.1/lib/xstream.jar:/usr/local/serviio-1.3.1/config -Xmx512M -Xms20M -XX:+UseParNewGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dderby.system.home=/usr/local/serviio-1.3.1/library -Dserviio.home=/usr/local/serviio-1.3.1 org.serviio.MediaServer
Exception in thread "main" java.lang.NoClassDefFoundError: org/restlet/service/StatusService
at org.serviio.MediaServer.main(MediaServer.java:112)
Caused by: java.lang.ClassNotFoundException: org.restlet.service.StatusService
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more

Re: Exception in thread "main" java.lang.NoClassDefFoundErro

PostPosted: Fri Oct 25, 2013 3:50 pm
by zip
Looks like the restlet jar (org.restlet.jar) is missing on your classpath. I just tried to download the Linux bundle and it's there

Re: Exception in thread "main" java.lang.NoClassDefFoundErro

PostPosted: Fri Oct 25, 2013 4:09 pm
by zachofalltrades
@scanf

Wildcard support for classpath entries was introduced with Java6.You probably have an earlier version of Java that is getting used in place of Java6. If multiple versions of Java are present, the best way to ensure that the correct version is used is to fully specify the path to the java binary when launching the application rather than just calling "java ___".