2013/7/3 Chuck Hill <ch...@global-village.net>:
>
> On 2013-07-02, at 2:00 PM, Filippo Laurìa wrote:
>
> 2013/7/2 Chuck Hill <ch...@global-village.net>:
>
> The JavaWebObjects.framework/Resources/Java/javawebobjects.jar is different
> than WAR type jar bundles.
>
> That might be a problem?
>
> I don't think so.
> I took the same WebObjects frameworks that deployed and fully working
> application (on Tomcat, too) uses.
>
> If you think this could be a problem, maybe it is.
> Can you explain how to use WAR type jar bundles of frameworks used?
>
>
> They have the Resources/ folder contents embedded in them.  They are
> stand-alone jar files.
>

I don't think this is the problem, since I understood that there were
no needs to install all WebObjects+Project Wonder frameworks because I
was taking only needed (Ajax, EOJDBCPrototypes, ERDirectToWeb,
ERExtensions, ERJars, ExternalJars, JavaDirectToWeb,
JavaDTWGeneration, JavaEOAccess, JavaEOControl, JavaEOProject,
JavaFoundation, JavaJDBCAdaptor, JavaWebObjects, JavaWOExtensions,
JavaWOJSPServlet and WOOgnl).

Now, I was wondering, is there some "precedence constraint" among
these frameworks?

I know that dynamic class loader, maybe, was intended to bypass these
troubles but, I read, somewhere in the source code of application I'm
trying to build, to put into Eclipse build path always first
ERExtensions then JavaWOExtensions.

Is that true?

>
> More deeply, how can I understand how dinamic class loader works?
>
>
> You could take a look at what WOStart does:
> https://github.com/wocommunity/wonder/tree/master/Utilities/WOStart
>
> Other than that you would need to decompile WOBootstrap and see.
>
> ERXApplication also plays with the classpath before the classes are loaded.
> You can add this property to disable it and see if that makes a difference:
> -D_DisableClasspathReorder=true
>
>
> Thank you for reading.
>
> Not a lot of people use Tomcat for deployment, I don't.
>
> Considering I have Ubuntu Linux, what servlet container do you suggest?
>
>
> I have never deployed in a servlet container.  Most of us are using the
> WebObjects application server (wotaskd and JavaMonitor).
>
>
> Chuck
>
>
> On 2013-07-01, at 7:48 AM, Filippo Laurìa wrote:
>
>
> 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      (Webobjects-dev@lists.apple.com)
>
> Help/Unsubscribe/Update your Subscription:
>
> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>
>
> This email sent to ch...@global-village.net
>
>
> --
>
> Chuck Hill
>
> Executive Managing Partner, VP Development and Technical Services
>
>
> Practical WebObjects - for developers who want to increase their overall
> knowledge of WebObjects or who are trying to solve specific problems.
>
> http://www.global-village.net/gvc/practical_webobjects
>
>
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest
> Growing Companies in B.C!
>
>
> Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking of
> Canada’s Fastest-Growing Companies by PROFIT Magazine!
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> Chuck Hill
> Executive Managing Partner, VP Development and Technical Services
>
> Practical WebObjects - for developers who want to increase their overall
> knowledge of WebObjects or who are trying to solve specific problems.
> http://www.global-village.net/gvc/practical_webobjects
>
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest
> Growing Companies in B.C!
>
> Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking of
> Canada’s Fastest-Growing Companies by PROFIT Magazine!
>

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to