Unexplained WOSessionStore or NSProperties ClassNotFound Exceptions
Unexplained WOSessionStore or NSProperties ClassNotFound Exceptions
- Subject: Unexplained WOSessionStore or NSProperties ClassNotFound Exceptions
- From: Filippo Laurìa <email@hidden>
- Date: Mon, 01 Jul 2013 16:48:49 +0200
Hello everyone.
I'm back with a new question.
I'm always trying (few days ago I'm on it "full-time") to build up a
Linux environment to modify WebObjects based Web-CAT [1] application.
If you remember my last posts I had some troubles. My system is based
on Ubuntu Linux 12, Eclipse 3.7, WOLips 37 and Tomcat 7.0.40.
I tried using WO 5.4.3 + Wonder 5.0 installation but after many
trials, i left that way for this other one: since Web-CAT developers
release a war file and the application updates itself when starts
(from here [2]), I decided to use frameworks itself downloaded and
installed, so now I'm using same frameworks (same versions) in it
used. (You can read list of used frameworks here [3])
Then, I also added few jars needed (always taken from initial, up to
date, war released, trying to avoid diffrent packages version) and
finally I've got _no java compilation errors_ (i was starting having
more than 2000 errors).
But, I'm now having strange runtime problems. Specifically, some
WebObjects classes cannot be found. Here it is few lines of
catalina.out log:
...
invoking ERXApplication.setup()
Installed NSProjectSearchPath fix
java.lang.ClassNotFoundException: com.webobjects.appserver.WOSessionStore
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at com.webobjects.foundation._NSUtilities._classWithPartialName(_NSUtilities.java:350)
at com.webobjects.foundation._NSUtilities.classWithName(_NSUtilities.java:334)
at com.webobjects.appserver.WOApplication._instanceOfNamedClassAssignableFrom(WOApplication.java:5831)
at com.webobjects.appserver.WOApplication.setSessionStoreClassName(WOApplication.java:5021)
at com.webobjects.appserver.WOApplication.<init>(WOApplication.java:857)
at er.extensions.appserver.ajax.ERXAjaxApplication.<init>(ERXAjaxApplication.java:22)
at er.extensions.appserver.ERXApplication.<init>(ERXApplication.java:816)
at org.webcat.core.Application.<init>(Application.java:124)
at net.sf.webcat.core.Application.<init>(Application.java:33)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.java:616)
at com.webobjects.appserver.WOApplication.primeApplication(WOApplication.java:634)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.webobjects.jspservlet.WOServletAdaptor._applicationInit(WOServletAdaptor.java:421)
at com.webobjects.jspservlet.WOServletAdaptor.initStatics(WOServletAdaptor.java:95)
at com.webobjects.jspservlet.WOServletAdaptor.init(WOServletAdaptor.java:652)
at net.sf.webcat.WCServletAdaptor.init(WCServletAdaptor.java:109)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
...
as you can see WOSessionStore cannot be found, but JavaWebObjects
framework is fisically present on filesystem and correctly mapped by
WO automatic classloader
(...t.jar:/home/flippo/tomcat7040_2/webapps/Web-CAT/WEB-INF/Web-CAT.woa/Contents/Library/Frameworks/JavaWebObjects.framework/Resources/Java/javawebobjects.jar...)
Firstly i thought maybe some jar file is corrupted, so i replaced
WebObjects jars with their content (removing only META-INF directory).
I also properly modified Info.plist files (I don't know if this is
needed, but I did it anyway).
Result is that now class that it can't see is NSProperties of the
JavaFoundation framework.
...
Found MainBundle at:
/home/flippo/tomcat7040_2/webapps/Web-CAT/WEB-INF/Web-CAT.woa
java.lang.ClassNotFoundException: com.webobjects.foundation.NSProperties
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at com.webobjects.jspservlet.WOServletAdaptor._applicationInit(WOServletAdaptor.java:329)
at com.webobjects.jspservlet.WOServletAdaptor.initStatics(WOServletAdaptor.java:95)
at com.webobjects.jspservlet.WOServletAdaptor.init(WOServletAdaptor.java:652)
at net.sf.webcat.WCServletAdaptor.init(WCServletAdaptor.java:109)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
...
I also tryied to bypass WO dynamic class loader setting
java.class.path property with right ":"separated paths, but it still
doesn't work.
Is there anyone who can address me to the right way so I can solve
this problems?
Thank you.
PS. Here i pasted full tomcat's log http://pastebin.com/TF3UQTLB
[1] http://sourceforge.net/projects/web-cat/
[2] http://web-cat.org/updates
[3] ----
Ajax.framework
EOJDBCPrototypes.framework
ERDirectToWeb.framework
ERExtensions.framework
ERJars.framework
ExternalJars.framework
JavaDirectToWeb.framework
JavaDTWGeneration.framework
JavaEOAccess.framework
JavaEOControl.framework
JavaEOProject.framework
JavaFoundation.framework
JavaJDBCAdaptor.framework
JavaWebObjects.framework
JavaWOExtensions.framework
JavaWOJSPServlet.framework
WOOgnl.framework
----
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden