Hello Faizel,

Thanks a lot for this.
I was able to get back to this and made some tests. First, it’s clearly better 
when the context.xml file is in META-INF:)
I voluntarily made a typo in it and I was able to see that the file was 
actually checked by Tomcat.
I also tried to put things the other way around to actually create the issue on 
my test machine (Mac mini), but I wasn’t able to “break” it…
I thought that putting ERExtensions.jar in the PostResources would lead to the 
error I was getting on the other tests servers, but everything worked fine on 
the Mac mini. I wasn’t able to make it exhibit the failure from the other 
servers (NoSuchMethodError). I don’t understand that, and it feels like I can’t 
be sure it would work as expected on future deployment.

Any idea why I couldn’t create the error using the Pre/Post Resources (I’ve put 
all resources in their opposite directive)?
Any idea on how to make sure I can create (and so fix for sure) the error?

For now, I don’t have access to the other servers that were having the issue, 
but I used Matt’s tip (pre-expand ERExtensions.jar into /classes/…) and it was 
working. It’s just that I don't feel confortable keeping this solution as 
nothing tells me that classes folder loading won’t change in a Tomcat update…

Thanks a lot,

Xavier


> On 1 Feb 2020, at 01:48, Faizel Dakri <list...@dakri.com> wrote:
> 
> Xavier, 
> 
> I make use of the PreResources and PostResources directives in my context.xml 
> file. FYI, I noticed you put the context.xml file in WEB-INF. I have mine in 
> the META-INF folder.
> 
> 
> Mine looks like this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- 
>       Licensed to the Apache Software Foundation (ASF) under one or more 
> contributor 
>       license agreements. See the NOTICE file distributed with this work for 
> additional 
>       information regarding copyright ownership. The ASF licenses this file 
> to 
>       You under the Apache License, Version 2.0 (the "License"); you may not 
> use 
>       this file except in compliance with the License. You may obtain a copy 
> of 
>       the License at http://www.apache.org/licenses/LICENSE-2.0 
> <http://www.apache.org/licenses/LICENSE-2.0> Unless required 
>       by applicable law or agreed to in writing, software distributed under 
> the 
>       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
> CONDITIONS 
>       OF ANY KIND, either express or implied. See the License for the 
> specific 
>       language governing permissions and limitations under the License. 
> -->
> 
> <Context antiResourceLocking="false" privileged="true">
>       <Resources>
> 
>               <!--  
>                       Coerce the Tomcat webapp classloader to force the 
> ERAttributeExtension, ERExtensions.jar 
>                       and application Jars to be searched BEFORE all other 
> Jars (PreSresources). 
>                       Further, we force all WebObjects Jars to load LAST 
> (PostResources). 
>               -->
> 
>               <PreResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/ERAttributeExtension.jar"
>                       webAppMount="/WEB-INF/lib/ERAttributeExtension.jar" />
> 
>               <PreResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/ERExtensions.jar"
>                       webAppMount="/WEB-INF/lib/ERExtensions.jar" />
> 
>               <PreResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/${project.artifactId}.jar"
>                       webAppMount="/WEB-INF/lib/${project.artifactId}.jar" />
> 
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaEOAccess.jar"
>                       webAppMount="/WEB-INF/lib/JavaEOAccess.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaEOControl.jar"
>                       webAppMount="/WEB-INF/lib/JavaEOControl.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaFoundation.jar"
>                       webAppMount="/WEB-INF/lib/JavaFoundation.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaJDBCAdaptor.jar"
>                       webAppMount="/WEB-INF/lib/JavaJDBCAdaptor.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaWOExtensions.jar"
>                       webAppMount="/WEB-INF/lib/JavaWOExtensions.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaWOJSPServlet.jar"
>                       webAppMount="/WEB-INF/lib/JavaWOJSPServlet.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaWebObjects.jar"
>                       webAppMount="/WEB-INF/lib/JavaWebObjects.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaWebServicesSupport.jar"
>                       webAppMount="/WEB-INF/lib/JavaWebServicesSupport.jar" />
>               <PostResources 
> className="org.apache.catalina.webresources.FileResourceSet"
>                       
> base="${catalina.base}/webapps/${project.artifactId}/WEB-INF/lib/JavaXML.jar"
>                       webAppMount="/WEB-INF/lib/JavaXML.jar" />
> 
>       </Resources>
> </Context>
> 
> Hope it helps,
> 
> F
> 
> -- 
> Faizel Dakri
> list...@dakri.com <mailto:list...@dakri.com>
>> On Jan 30, 2020, at 04:13 AM, Dev WO via Webobjects-dev 
>> <webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>> 
>> wrote:
>> 
>> Hi Matthew,
>> 
>> I will try that.
>> 
>> Also I’m currently looking into using the PreResources feature like this:
>> 
>> -creating a directory mywebapp/WEB-INF/prelib with all the system jars (the 
>> Apple ones)
>> -mywebapp/WEB-INF/context.xml contains
>> 
>> <Context>
>>      <Resources>
>>              <PreResources 
>> className="org.apache.catalina.webresources.DirResourceSet" 
>> base=“/WEB-INF/prelib" webAppMount="/WEB-INF/lib" />
>>      </Resources>
>> </Context>
>> 
>> but it doesn’t work for now. I also tried with an absolute path, but same 
>> failure ( java.lang.ClassNotFoundException for WOApplication)
>> 
>> Have you ever tried that way? any pointers?
>> 
>> Thanks,
>> 
>> Xavier
>>  
>> 
>>> On 30 Jan 2020, at 10:57, <matthew.long...@proact.net 
>>> <mailto:matthew.long...@proact.net>> <matthew.long...@proact.net 
>>> <mailto:matthew.long...@proact.net>> wrote:
>>> 
>>> Hi Xavier
>>> 
>>> We had exactly the same issue on one of our sites. In the end the resolution
>>> was not to change the tomcat class loaders but to actually pre expand the
>>> required jars into a classes directory within the war, in our case it was
>>> only the ERExtensions.jar needed
>>> 
>>> e.g. 
>>> X.war/WEB-INF/classes/com/webobjects/...
>>> X.war/WEB-INF/classes/er/extensions/...
>>> 
>>> Anything in here will be loaded prior to the jars within WEB-INF/lib
>>> 
>>> Regards
>>> Matt
>>> 
>>> -----Original Message-----
>>> From: Webobjects-dev
>>> <webobjects-dev-bounces+matthew.longden=proact....@lists.apple.com 
>>> <mailto:webobjects-dev-bounces+matthew.longden=proact....@lists.apple.com>> 
>>> On
>>> Behalf Of webobjects-dev-requ...@lists.apple.com 
>>> <mailto:webobjects-dev-requ...@lists.apple.com>
>>> Sent: 29 January 2020 17:57
>>> To: webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>
>>> Subject: Webobjects-dev Digest, Vol 17, Issue 32
>>> Importance: Low
>>> 
>>> Send Webobjects-dev mailing list submissions to
>>>     webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>
>>> 
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>     https://lists.apple.com/mailman/listinfo/webobjects-dev 
>>> <https://lists.apple.com/mailman/listinfo/webobjects-dev>
>>> or, via email, send a message with subject or body 'help' to
>>>     webobjects-dev-requ...@lists.apple.com
>>> 
>>> You can reach the person managing the list at
>>>     webobjects-dev-ow...@lists.apple.com
>>> 
>>> When replying, please edit your Subject line so it is more specific than
>>> "Re: Contents of Webobjects-dev digest..."
>>> 
>>> 
>>> Today's Topics:
>>> 
>>>   1. [Tomcat] -Classpath ordering issue (Dev WO)
>>>   2. Re: [Tomcat] -Classpath ordering issue (Konrad Kubacki)
>>>   3. Fwd: [Tomcat] -Classpath ordering issue (Dev WO)
>>>   4. Re: [Tomcat] -Classpath ordering issue (Dev WO)
>>> 
>>> 
>>> ----------------------------------------------------------------------
>>> 
>>> Message: 1
>>> Date: Wed, 29 Jan 2020 08:32:25 +0100
>>> From: Dev WO <webobje...@anazys.com>
>>> To: "webobjects-dev@lists.apple.com" <webobjects-dev@lists.apple.com>
>>> Subject: [Tomcat] -Classpath ordering issue
>>> Message-ID: <06d8ad23-3cd7-43d1-a9c9-4f7e34337...@anazys.com>
>>> Content-Type: text/plain;   charset=utf-8
>>> 
>>> Hi WOers,
>>> 
>>> I?m starting to lost my mind with a Tomcat deployment (not my choice)
>>> 
>>> I have 4 machines:
>>> 1-Dev machine running through Eclipse and Apache (OS X) => Everything works
>>> 2-Test Tomcat deployment machine (OS X / Tomcat 9.0.29) => Everything works
>>> 3-Another test Tomcat deployment (Debian / Tomcat 9.0.20) => Everything
>>> works 4-Customer ?beta test" machine (Debian / Tomcat 9.0.20) => Some part
>>> of the app doesn?t work
>>> 
>>> Of course machine #4 is the one I have the least access?
>>> 
>>> By "Some part of the app doesn?t work? I mean that I have some asynchronous
>>> thread that do their job, I have some HTML interfaces that works, but other
>>> don?t...
>>> After way too much trial, I was able to get basically the same errors on my
>>> dev machine by changing the class path (moving down ERExtensions frameworks
>>> in the classpath). Finally getting errors like:
>>> 
>>> NoSuchMethodError:
>>> com.webobjects.foundation.NSArray.<init>(Ljava/lang/Object;[Ljava/lang/Objec
>>> t;)V
>>> and
>>> NoSuchMethodError:
>>> com.webobjects.appserver.WOCookie.<init>(Ljava/lang/String;Ljava/lang/String
>>> ;Ljava/lang/String;Ljava/lang/String;IZZ)V
>>> 
>>> After reading every thread about Tomcat from the mailing list from 2004 up
>>> to today, I still don?t get the issue.
>>> I?m using the exact same .war file on all machines, with the web.xml
>>> relevant part (when framework order is correct) at the end of the message.
>>> 
>>> I have no clue and no idea regarding how to find the issue on this machine
>>> #4.
>>> 
>>> I?m using Wonder7 and WO5.4, the Application class extends ERXApplication
>>> (having JavaWOJSPServlet in the build path or not doesn?t change the fact it
>>> works on machine 1,2 and 3 but not 4)
>>> 
>>> Thanks for your help,
>>> 
>>> Xavier
>>> 
>>> 
>>> 
>>> <context-param>
>>>   <param-name>WOClasspath</param-name>
>>>   <param-value>
>>>   WEBINFROOT/Resources/Java/
>>> WEBINFROOT/CloudManager.woa/Contents/Resources/Java/cloudmanager.jar
>>> WEBINFROOT/Resources/Java/gson-2.5.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERCoolComponents.framework/R
>>> esources/Java/ERCoolComponents.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/AjaxLook.framework/Resources
>>> /Java/AjaxLook.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resources/Jav
>>> a/Ajax.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resources/Jav
>>> a/jabsorb-1.2.2.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataModel.framew
>>> ork/Resources/Java/cloudmanagerdatamodel.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataModel.framew
>>> ork/Resources/Java/postgresql-8.3-603.jdbc3.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERExtensions.framework/Resou
>>> rces/Java/ERExtensions.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/ERJars.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/ERFoundation.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/ERWebObjects.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-cli-1.3.1.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-codec-1.10.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-io-2.5.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-lang-2.6.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-lang3-3.5.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/commons-logging-1.2.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/fluent-hc-4.5.3.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/httpclient-4.5.3.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/httpclient-cache-4.5.3.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/httpcore-4.4.6.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/httpmime-4.5.3.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/icu4j-3_8_1.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/javassist-3.20.0-GA.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/joda-time-2.9.7.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/junit-4.12.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/log4j-1.2.17.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/ognl-3.2.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/slf4j-api-1.7.23.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resources/J
>>> ava/slf4j-log4j12-1.7.23.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/PostgresqlPlugIn.framework/R
>>> esources/Java/PostgresqlPlugIn.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaMemoryAdaptor.framework/
>>> Resources/Java/JavaMemoryAdaptor.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERPrototypes.framework/Resou
>>> rces/Java/ERPrototypes.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/WOOgnl.framework/Resources/J
>>> ava/WOOgnl.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWOExtensions.framework/R
>>> esources/Java/JavaWOExtensions.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framework/Resou
>>> rces/Java/javaeoaccess.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framework/WebSe
>>> rverResources/Java/JavaEOAccess.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framework/Reso
>>> urces/Java/javaeocontrol.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framework/WebS
>>> erverResources/Java/JavaEOControl.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.framework/Res
>>> ources/Java/javafoundation.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.framework/Web
>>> ServerResources/Java/JavaFoundation.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.framework/Re
>>> sources/Java/javajdbcadaptor.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.framework/We
>>> bServerResources/Java/JavaJDBCAdaptor.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.framework/Res
>>> ources/Java/javawebobjects.jar
>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.framework/Web
>>> ServerResources/Java/JavaWebObjects.jar
>>> </param-value>
>>> </context-param>
>>> 
>>> ------------------------------
>>> 
>>> Message: 2
>>> Date: Wed, 29 Jan 2020 08:44:23 +0100
>>> From: Konrad Kubacki <kkuba...@ifirma.pl>
>>> To: webobjects-dev@lists.apple.com
>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>> Message-ID: <610271b9-7209-e71b-7d38-91ad6021c...@ifirma.pl>
>>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>> 
>>> Problem You are facing is probably caused by order of jars loading.
>>> Tomcat >= 8 does it in random way (up to version 7.5.x it was alphabetical).
>>> It is important, that classloader loads wonder "redefined" classes for some
>>> of WO, instead of original.
>>> 
>>> Solution:
>>> You may want to write your own tomcat class loader, basing on WO classpath
>>> file, or just loading jars in alphabetical order.
>>> Then You can activate it on tomcat's level in
>>> ${CATALINA_BASE}/conf/context.xml or for your app only in 
>>> |webapp/META-INF/context.xml|. For details see tomcat's documentation.
>>> 
>>> If it's not the case, You may also check if on this beta-test tomcat(#4)
>>> there is not other WO app deployed, which loads original WO classess, before
>>> Your's app start. And/or check if they fully restart it between deployments
>>> o new version.
>>> 
>>> 
>>> W dniu 28.01.2020 o?19:35, Dev WO via Webobjects-dev pisze:
>>>> Hi WOers,
>>>> 
>>>> I?m starting to lost my mind with a Tomcat deployment (not my choice)
>>>> 
>>>> I have 4 machines:
>>>> 1-Dev machine running through Eclipse and Apache (OS X) => Everything 
>>>> works 2-Test Tomcat deployment machine (OS X / Tomcat 9.0.29) => 
>>>> Everything works 3-Another test Tomcat deployment (Debian / Tomcat 
>>>> 9.0.20) => Everything works 4-Customer ?beta test" machine (Debian / 
>>>> Tomcat 9.0.20) => Some part of the app doesn?t work
>>>> 
>>>> Of course machine #4 is the one I have the least access?
>>>> 
>>>> By "Some part of the app doesn?t work? I mean that I have some
>>> asynchronous thread that do their job, I have some HTML interfaces that
>>> works, but other don?t...
>>>> After way too much trial, I was able to get basically the same errors on
>>> my dev machine by changing the class path (moving down ERExtensions
>>> frameworks in the classpath). Finally getting errors like:
>>>> 
>>>> NoSuchMethodError: 
>>>> com.webobjects.foundation.NSArray.<init>(Ljava/lang/Object;[Ljava/lang
>>>> /Object;)V
>>>> and
>>>> NoSuchMethodError: 
>>>> com.webobjects.appserver.WOCookie.<init>(Ljava/lang/String;Ljava/lang/
>>>> String;Ljava/lang/String;Ljava/lang/String;IZZ)V
>>>> 
>>>> After reading every thread about Tomcat from the mailing list from 2004 up
>>> to today, I still don?t get the issue.
>>>> I?m using the exact same .war file on all machines, with the web.xml
>>> relevant part (when framework order is correct) at the end of the message.
>>>> 
>>>> I have no clue and no idea regarding how to find the issue on this machine
>>> #4.
>>>> 
>>>> I?m using Wonder7 and WO5.4, the Application class extends 
>>>> ERXApplication (having JavaWOJSPServlet in the build path or not 
>>>> doesn?t change the fact it works on machine 1,2 and 3 but not 4)
>>>> 
>>>> Thanks for your help,
>>>> 
>>>> Xavier
>>>> 
>>>> 
>>>> 
>>>>   <context-param>
>>>>     <param-name>WOClasspath</param-name>
>>>>     <param-value>
>>>>     WEBINFROOT/Resources/Java/
>>>> WEBINFROOT/CloudManager.woa/Contents/Resources/Java/cloudmanager.jar
>>>> WEBINFROOT/Resources/Java/gson-2.5.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERCoolComponents.frame
>>>> work/Resources/Java/ERCoolComponents.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/AjaxLook.framework/Res
>>>> ources/Java/AjaxLook.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resourc
>>>> es/Java/Ajax.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resourc
>>>> es/Java/jabsorb-1.2.2.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataModel.
>>>> framework/Resources/Java/cloudmanagerdatamodel.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataModel.
>>>> framework/Resources/Java/postgresql-8.3-603.jdbc3.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERExtensions.framework
>>>> /Resources/Java/ERExtensions.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/ERJars.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/ERFoundation.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/ERWebObjects.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-cli-1.3.1.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-codec-1.10.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-io-2.5.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-lang-2.6.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-lang3-3.5.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/commons-logging-1.2.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/fluent-hc-4.5.3.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/httpclient-4.5.3.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/httpclient-cache-4.5.3.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/httpcore-4.4.6.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/httpmime-4.5.3.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/icu4j-3_8_1.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/javassist-3.20.0-GA.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/joda-time-2.9.7.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/junit-4.12.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/log4j-1.2.17.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/ognl-3.2.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/slf4j-api-1.7.23.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Resou
>>>> rces/Java/slf4j-log4j12-1.7.23.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/PostgresqlPlugIn.frame
>>>> work/Resources/Java/PostgresqlPlugIn.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaMemoryAdaptor.fram
>>>> ework/Resources/Java/JavaMemoryAdaptor.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERPrototypes.framework
>>>> /Resources/Java/ERPrototypes.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/WOOgnl.framework/Resou
>>>> rces/Java/WOOgnl.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWOExtensions.frame
>>>> work/Resources/Java/JavaWOExtensions.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framework
>>>> /Resources/Java/javaeoaccess.jar 
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framework
>>>> /WebServerResources/Java/JavaEOAccess.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framewor
>>>> k/Resources/Java/javaeocontrol.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framewor
>>>> k/WebServerResources/Java/JavaEOControl.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.framewo
>>>> rk/Resources/Java/javafoundation.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.framewo
>>>> rk/WebServerResources/Java/JavaFoundation.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.framew
>>>> ork/Resources/Java/javajdbcadaptor.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.framew
>>>> ork/WebServerResources/Java/JavaJDBCAdaptor.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.framewo
>>>> rk/Resources/Java/javawebobjects.jar
>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.framewo
>>>> rk/WebServerResources/Java/JavaWebObjects.jar
>>>> </param-value>
>>>>   </context-param>
>>>> 
>>>> 
>>>>  _______________________________________________
>>>> 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/kkubacki%40powe
>>>> r.com.pl
>>>> 
>>>> This email sent to kkuba...@power.com.pl
>>> 
>>> --
>>> Konrad Kubacki
>>> Starszy Programista - Lider Zespo?u Programist?w ifirma.pl
>>> 
>>> IFIRMA SA
>>> ul. Grabiszy?ska 241 B
>>> 53-234 Wroc?aw
>>> tel.: +48 71 769 43 00
>>> faks: +48 71 321 00 16
>>> 
>>> https://www.ifirma.pl
>>> 
>>> S?d Rejonowy dla Wroc?awia-Fabrycznej
>>> VI Wydzia? Gospodarczy - Krajowego Rejestru S?dowego
>>> KRS: 0000281947
>>> NIP: PL-898-16-47-572
>>> Kapita? 640 000 z? w pe?ni op?acony
>>> 
>>> Ochrona Danych Osobowych
>>> https://www.ifirma.pl/polityka-prywatnosci-i-ochrona-danych-osobowych
>>> 
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:
>>> <https://lists.apple.com/archives/webobjects-dev/attachments/20200129/10d980
>>> aa/attachment.htm>
>>> 
>>> ------------------------------
>>> 
>>> Message: 3
>>> Date: Wed, 29 Jan 2020 09:50:53 +0100
>>> From: Dev WO <webobje...@anazys.com>
>>> To: webObjects-Dev Mailing List <webobjects-dev@lists.apple.com>
>>> Subject: Fwd: [Tomcat] -Classpath ordering issue
>>> Message-ID: <252d6c14-1333-4dc9-8dd9-ad7b55a7c...@anazys.com>
>>> Content-Type: text/plain; charset="utf-8"
>>> 
>>> Forgot to send to the list
>>> 
>>>> Begin forwarded message:
>>>> 
>>>> From: Dev WO <webobje...@anazys.com>
>>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>>> Date: 29 January 2020 at 09:50:13 CET
>>>> To: Konrad Kubacki <kkuba...@ifirma.pl>
>>>> 
>>>> Hi Konrad,
>>>> 
>>>> Thanks for the description of the issue.
>>>> I?m looking into it right now.
>>>> 
>>>> It looks like there?s a VirtualWebappLoader already included in Tomcat, so
>>> do I need to build my own or can I just declare it in the context.xml file
>>> in my_app/WEB-INF/?
>>>> I?m surprised building the app doesn?t generate that context.xml file at
>>> the same time, it would make sense.
>>>> 
>>>> I?m pretty confuse with the context.xml file, should it be something 
>>>> like
>>>> 
>>>> <Context docBase="\webapps\CloudManager">
>>>>   <Loader className="org.apache.catalina.loader.VirtualWebappLoader"/>
>>>>   <lib>ERCoolComponents</lib>
>>>>   <lib>AjaxLook</lib>
>>>>   ...
>>>> </context>
>>>> 
>>>> Just to be precise, there?s only one app deployed on this Tomcat instance.
>>>> 
>>>> Thanks and have a nice day,
>>>> 
>>>> Xavier
>>>> 
>>>>> On 29 Jan 2020, at 08:44, Konrad Kubacki via Webobjects-dev
>>> <webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>>
>>> wrote:
>>>>> 
>>>>> Problem You are facing is probably caused by order of jars loading. 
>>>>> Tomcat >= 8 does it in random way (up to version 7.5.x it was
>>> alphabetical).
>>>>> It is important, that classloader loads wonder "redefined" classes for
>>> some of WO, instead of original.
>>>>> 
>>>>> Solution:
>>>>> You may want to write your own tomcat class loader, basing on WO
>>> classpath file, or just loading jars in alphabetical order.
>>>>> Then You can activate it on tomcat's level in
>>> ${CATALINA_BASE}/conf/context.xml or for your app only in
>>> webapp/META-INF/context.xml. For details see tomcat's documentation.
>>>>> 
>>>>> If it's not the case, You may also check if on this beta-test tomcat(#4)
>>> there is not other WO app deployed, which loads original WO classess, before
>>> Your's app start. And/or check if they fully restart it between deployments
>>> o new version.
>>>>> 
>>>>> 
>>>>> 
>>>>> W dniu 28.01.2020 o 19:35, Dev WO via Webobjects-dev pisze:
>>>>>> Hi WOers,
>>>>>> 
>>>>>> I?m starting to lost my mind with a Tomcat deployment (not my 
>>>>>> choice)
>>>>>> 
>>>>>> I have 4 machines:
>>>>>> 1-Dev machine running through Eclipse and Apache (OS X) => 
>>>>>> Everything works 2-Test Tomcat deployment machine (OS X / Tomcat 
>>>>>> 9.0.29) => Everything works 3-Another test Tomcat deployment (Debian 
>>>>>> / Tomcat 9.0.20) => Everything works 4-Customer ?beta test" machine 
>>>>>> (Debian / Tomcat 9.0.20) => Some part of the app doesn?t work
>>>>>> 
>>>>>> Of course machine #4 is the one I have the least access?
>>>>>> 
>>>>>> By "Some part of the app doesn?t work? I mean that I have some
>>> asynchronous thread that do their job, I have some HTML interfaces that
>>> works, but other don?t...
>>>>>> After way too much trial, I was able to get basically the same errors on
>>> my dev machine by changing the class path (moving down ERExtensions
>>> frameworks in the classpath). Finally getting errors like:
>>>>>> 
>>>>>> NoSuchMethodError: 
>>>>>> com.webobjects.foundation.NSArray.<init>(Ljava/lang/Object;[Ljava/la
>>>>>> ng/Object;)V
>>>>>> and
>>>>>> NoSuchMethodError: 
>>>>>> com.webobjects.appserver.WOCookie.<init>(Ljava/lang/String;Ljava/lan
>>>>>> g/String;Ljava/lang/String;Ljava/lang/String;IZZ)V
>>>>>> 
>>>>>> After reading every thread about Tomcat from the mailing list from 2004
>>> up to today, I still don?t get the issue.
>>>>>> I?m using the exact same .war file on all machines, with the web.xml
>>> relevant part (when framework order is correct) at the end of the message.
>>>>>> 
>>>>>> I have no clue and no idea regarding how to find the issue on this
>>> machine #4.
>>>>>> 
>>>>>> I?m using Wonder7 and WO5.4, the Application class extends 
>>>>>> ERXApplication (having JavaWOJSPServlet in the build path or not 
>>>>>> doesn?t change the fact it works on machine 1,2 and 3 but not 4)
>>>>>> 
>>>>>> Thanks for your help,
>>>>>> 
>>>>>> Xavier
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>  <context-param>
>>>>>>    <param-name>WOClasspath</param-name>
>>>>>>    <param-value>
>>>>>>    WEBINFROOT/Resources/Java/
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Resources/Java/cloudmanager.jar
>>>>>> WEBINFROOT/Resources/Java/gson-2.5.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERCoolComponents.fra
>>>>>> mework/Resources/Java/ERCoolComponents.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/AjaxLook.framework/R
>>>>>> esources/Java/AjaxLook.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resou
>>>>>> rces/Java/Ajax.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resou
>>>>>> rces/Java/jabsorb-1.2.2.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataMode
>>>>>> l.framework/Resources/Java/cloudmanagerdatamodel.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataMode
>>>>>> l.framework/Resources/Java/postgresql-8.3-603.jdbc3.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERExtensions.framewo
>>>>>> rk/Resources/Java/ERExtensions.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERJars.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERFoundation.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERWebObjects.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-cli-1.3.1.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-codec-1.10.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-io-2.5.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-lang-2.6.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-lang3-3.5.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-logging-1.2.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/fluent-hc-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpclient-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpclient-cache-4.5.3.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpcore-4.4.6.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpmime-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/icu4j-3_8_1.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/javassist-3.20.0-GA.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/joda-time-2.9.7.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/junit-4.12.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/log4j-1.2.17.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ognl-3.2.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/slf4j-api-1.7.23.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/slf4j-log4j12-1.7.23.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/PostgresqlPlugIn.fra
>>>>>> mework/Resources/Java/PostgresqlPlugIn.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaMemoryAdaptor.fr
>>>>>> amework/Resources/Java/JavaMemoryAdaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERPrototypes.framewo
>>>>>> rk/Resources/Java/ERPrototypes.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/WOOgnl.framework/Res
>>>>>> ources/Java/WOOgnl.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWOExtensions.fra
>>>>>> mework/Resources/Java/JavaWOExtensions.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framewo
>>>>>> rk/Resources/Java/javaeoaccess.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framewo
>>>>>> rk/WebServerResources/Java/JavaEOAccess.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framew
>>>>>> ork/Resources/Java/javaeocontrol.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framew
>>>>>> ork/WebServerResources/Java/JavaEOControl.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.frame
>>>>>> work/Resources/Java/javafoundation.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.frame
>>>>>> work/WebServerResources/Java/JavaFoundation.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.fram
>>>>>> ework/Resources/Java/javajdbcadaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.fram
>>>>>> ework/WebServerResources/Java/JavaJDBCAdaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.frame
>>>>>> work/Resources/Java/javawebobjects.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.frame
>>>>>> work/WebServerResources/Java/JavaWebObjects.jar
>>>>>> </param-value>
>>>>>>  </context-param>
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com
>>> <mailto:Webobjects-dev@lists.apple.com>)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/kkubacki%40po
>>>>>> wer.com.pl 
>>>>>> <https://lists.apple.com/mailman/options/webobjects-dev/kkubacki%40p
>>>>>> ower.com.pl>
>>>>>> 
>>>>>> This email sent to kkuba...@power.com.pl 
>>>>>> <mailto:kkuba...@power.com.pl>
>>>>> --
>>>>> Konrad Kubacki
>>>>> Starszy Programista - Lider Zespo?u Programist?w ifirma.pl
>>>>> 
>>>>> IFIRMA SA
>>>>> ul. Grabiszy?ska 241 B
>>>>> 53-234 Wroc?aw
>>>>> tel.: +48 71 769 43 00
>>>>> faks: +48 71 321 00 16
>>>>> 
>>>>> https://www.ifirma.pl <https://www.ifirma.pl/>
>>>>> 
>>>>> S?d Rejonowy dla Wroc?awia-Fabrycznej VI Wydzia? Gospodarczy - 
>>>>> Krajowego Rejestru S?dowego
>>>>> KRS: 0000281947
>>>>> NIP: PL-898-16-47-572
>>>>> Kapita? 640 000 z? w pe?ni op?acony
>>>>> 
>>>>> Ochrona Danych Osobowych
>>>>> https://www.ifirma.pl/polityka-prywatnosci-i-ochrona-danych-osobowych 
>>>>> <https://www.ifirma.pl/polityka-prywatnosci-i-ochrona-danych-osobowyc
>>>>> h>_______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com
>>> <mailto:Webobjects-dev@lists.apple.com>)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/webobjects%40a
>>>>> nazys.com 
>>>>> <https://lists.apple.com/mailman/options/webobjects-dev/webobjects%40
>>>>> anazys.com>
>>>>> 
>>>>> This email sent to webobje...@anazys.com
>>>> 
>>> 
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:
>>> <https://lists.apple.com/archives/webobjects-dev/attachments/20200129/018b83
>>> c7/attachment.htm>
>>> 
>>> ------------------------------
>>> 
>>> Message: 4
>>> Date: Wed, 29 Jan 2020 18:57:07 +0100
>>> From: Dev WO <webobje...@anazys.com>
>>> To: webObjects-Dev Mailing List <webobjects-dev@lists.apple.com>
>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>> Message-ID: <63f52498-31a7-4022-9451-4f7fe74c6...@anazys.com>
>>> Content-Type: text/plain; charset="utf-8"
>>> 
>>> So far not good,
>>> 
>>> I?m trying to use the VirtualWebappLoader as below, but I?m not even sure my
>>> syntax is ok (and can?t find anything in the log relevant to this).
>>> I ?know? it doesn?t work as even with JavaWebObjects lib as the first one,
>>> the app still work on machine #2 (I would have expected a NoSuchMethodError
>>> exception)
>>> 
>>> I?ve also found jarjar (https://code.google.com/archive/p/jarjar/
>>> <https://code.google.com/archive/p/jarjar/>) maybe creating a single jar
>>> with all of them inside might work, but I?m not sure how to use and to set
>>> an order for the jar?
>>> 
>>> Any pointer or sample code related to this lib ordering problem?
>>> 
>>> Thanks,
>>> 
>>> Xavier
>>> 
>>>> On 29 Jan 2020, at 09:50, Dev WO <webobje...@anazys.com> wrote:
>>>> 
>>>> Hi Konrad,
>>>> 
>>>> Thanks for the description of the issue.
>>>> I?m looking into it right now.
>>>> 
>>>> It looks like there?s a VirtualWebappLoader already included in Tomcat, so
>>> do I need to build my own or can I just declare it in the context.xml file
>>> in my_app/WEB-INF/?
>>>> I?m surprised building the app doesn?t generate that context.xml file at
>>> the same time, it would make sense.
>>>> 
>>>> I?m pretty confuse with the context.xml file, should it be something 
>>>> like
>>>> 
>>>> <Context docBase="\webapps\CloudManager">
>>>>   <Loader className="org.apache.catalina.loader.VirtualWebappLoader"/>
>>>>   <lib>ERCoolComponents</lib>
>>>>   <lib>AjaxLook</lib>
>>>>   ...
>>>> </context>
>>>> 
>>>> Just to be precise, there?s only one app deployed on this Tomcat instance.
>>>> 
>>>> Thanks and have a nice day,
>>>> 
>>>> Xavier
>>>> 
>>>>> On 29 Jan 2020, at 08:44, Konrad Kubacki via Webobjects-dev
>>> <webobjects-dev@lists.apple.com <mailto:webobjects-dev@lists.apple.com>>
>>> wrote:
>>>>> 
>>>>> Problem You are facing is probably caused by order of jars loading. 
>>>>> Tomcat >= 8 does it in random way (up to version 7.5.x it was
>>> alphabetical).
>>>>> It is important, that classloader loads wonder "redefined" classes for
>>> some of WO, instead of original.
>>>>> 
>>>>> Solution:
>>>>> You may want to write your own tomcat class loader, basing on WO
>>> classpath file, or just loading jars in alphabetical order.
>>>>> Then You can activate it on tomcat's level in
>>> ${CATALINA_BASE}/conf/context.xml or for your app only in
>>> webapp/META-INF/context.xml. For details see tomcat's documentation.
>>>>> 
>>>>> If it's not the case, You may also check if on this beta-test tomcat(#4)
>>> there is not other WO app deployed, which loads original WO classess, before
>>> Your's app start. And/or check if they fully restart it between deployments
>>> o new version.
>>>>> 
>>>>> 
>>>>> 
>>>>> W dniu 28.01.2020 o 19:35, Dev WO via Webobjects-dev pisze:
>>>>>> Hi WOers,
>>>>>> 
>>>>>> I?m starting to lost my mind with a Tomcat deployment (not my 
>>>>>> choice)
>>>>>> 
>>>>>> I have 4 machines:
>>>>>> 1-Dev machine running through Eclipse and Apache (OS X) => 
>>>>>> Everything works 2-Test Tomcat deployment machine (OS X / Tomcat 
>>>>>> 9.0.29) => Everything works 3-Another test Tomcat deployment (Debian 
>>>>>> / Tomcat 9.0.20) => Everything works 4-Customer ?beta test" machine 
>>>>>> (Debian / Tomcat 9.0.20) => Some part of the app doesn?t work
>>>>>> 
>>>>>> Of course machine #4 is the one I have the least access?
>>>>>> 
>>>>>> By "Some part of the app doesn?t work? I mean that I have some
>>> asynchronous thread that do their job, I have some HTML interfaces that
>>> works, but other don?t...
>>>>>> After way too much trial, I was able to get basically the same errors on
>>> my dev machine by changing the class path (moving down ERExtensions
>>> frameworks in the classpath). Finally getting errors like:
>>>>>> 
>>>>>> NoSuchMethodError: 
>>>>>> com.webobjects.foundation.NSArray.<init>(Ljava/lang/Object;[Ljava/la
>>>>>> ng/Object;)V
>>>>>> and
>>>>>> NoSuchMethodError: 
>>>>>> com.webobjects.appserver.WOCookie.<init>(Ljava/lang/String;Ljava/lan
>>>>>> g/String;Ljava/lang/String;Ljava/lang/String;IZZ)V
>>>>>> 
>>>>>> After reading every thread about Tomcat from the mailing list from 2004
>>> up to today, I still don?t get the issue.
>>>>>> I?m using the exact same .war file on all machines, with the web.xml
>>> relevant part (when framework order is correct) at the end of the message.
>>>>>> 
>>>>>> I have no clue and no idea regarding how to find the issue on this
>>> machine #4.
>>>>>> 
>>>>>> I?m using Wonder7 and WO5.4, the Application class extends 
>>>>>> ERXApplication (having JavaWOJSPServlet in the build path or not 
>>>>>> doesn?t change the fact it works on machine 1,2 and 3 but not 4)
>>>>>> 
>>>>>> Thanks for your help,
>>>>>> 
>>>>>> Xavier
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>  <context-param>
>>>>>>    <param-name>WOClasspath</param-name>
>>>>>>    <param-value>
>>>>>>    WEBINFROOT/Resources/Java/
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Resources/Java/cloudmanager.jar
>>>>>> WEBINFROOT/Resources/Java/gson-2.5.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERCoolComponents.fra
>>>>>> mework/Resources/Java/ERCoolComponents.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/AjaxLook.framework/R
>>>>>> esources/Java/AjaxLook.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resou
>>>>>> rces/Java/Ajax.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/Ajax.framework/Resou
>>>>>> rces/Java/jabsorb-1.2.2.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataMode
>>>>>> l.framework/Resources/Java/cloudmanagerdatamodel.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/CloudManagerDataMode
>>>>>> l.framework/Resources/Java/postgresql-8.3-603.jdbc3.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERExtensions.framewo
>>>>>> rk/Resources/Java/ERExtensions.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERJars.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERFoundation.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ERWebObjects.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-cli-1.3.1.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-codec-1.10.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-io-2.5.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-lang-2.6.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-lang3-3.5.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/commons-logging-1.2.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/fluent-hc-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpclient-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpclient-cache-4.5.3.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpcore-4.4.6.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/httpmime-4.5.3.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/icu4j-3_8_1.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/javassist-3.20.0-GA.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/joda-time-2.9.7.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/junit-4.12.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/log4j-1.2.17.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/ognl-3.2.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/slf4j-api-1.7.23.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERJars.framework/Res
>>>>>> ources/Java/slf4j-log4j12-1.7.23.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/PostgresqlPlugIn.fra
>>>>>> mework/Resources/Java/PostgresqlPlugIn.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaMemoryAdaptor.fr
>>>>>> amework/Resources/Java/JavaMemoryAdaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/ERPrototypes.framewo
>>>>>> rk/Resources/Java/ERPrototypes.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/WOOgnl.framework/Res
>>>>>> ources/Java/WOOgnl.jar 
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWOExtensions.fra
>>>>>> mework/Resources/Java/JavaWOExtensions.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framewo
>>>>>> rk/Resources/Java/javaeoaccess.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOAccess.framewo
>>>>>> rk/WebServerResources/Java/JavaEOAccess.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framew
>>>>>> ork/Resources/Java/javaeocontrol.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaEOControl.framew
>>>>>> ork/WebServerResources/Java/JavaEOControl.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.frame
>>>>>> work/Resources/Java/javafoundation.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaFoundation.frame
>>>>>> work/WebServerResources/Java/JavaFoundation.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.fram
>>>>>> ework/Resources/Java/javajdbcadaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaJDBCAdaptor.fram
>>>>>> ework/WebServerResources/Java/JavaJDBCAdaptor.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.frame
>>>>>> work/Resources/Java/javawebobjects.jar
>>>>>> WEBINFROOT/CloudManager.woa/Contents/Frameworks/JavaWebObjects.frame
>>>>>> work/WebServerResources/Java/JavaWebObjects.jar
>>>>>> </param-value>
>>>>>>  </context-param>
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com
>>> <mailto:Webobjects-dev@lists.apple.com>)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/kkubacki%40po
>>>>>> wer.com.pl 
>>>>>> <https://lists.apple.com/mailman/options/webobjects-dev/kkubacki%40p
>>>>>> ower.com.pl>
>>>>>> 
>>>>>> This email sent to kkuba...@power.com.pl 
>>>>>> <mailto:kkuba...@power.com.pl>
>>>>> --
>>>>> Konrad Kubacki
>>>>> Starszy Programista - Lider Zespo?u Programist?w ifirma.pl
>>>>> 
>>>>> IFIRMA SA
>>>>> ul. Grabiszy?ska 241 B
>>>>> 53-234 Wroc?aw
>>>>> tel.: +48 71 769 43 00
>>>>> faks: +48 71 321 00 16
>>>>> 
>>>>> https://www.ifirma.pl <https://www.ifirma.pl/>
>>>>> 
>>>>> S?d Rejonowy dla Wroc?awia-Fabrycznej VI Wydzia? Gospodarczy - 
>>>>> Krajowego Rejestru S?dowego
>>>>> KRS: 0000281947
>>>>> NIP: PL-898-16-47-572
>>>>> Kapita? 640 000 z? w pe?ni op?acony
>>>>> 
>>>>> Ochrona Danych Osobowych
>>>>> https://www.ifirma.pl/polityka-prywatnosci-i-ochrona-danych-osobowych 
>>>>> <https://www.ifirma.pl/polityka-prywatnosci-i-ochrona-danych-osobowyc
>>>>> h>_______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com
>>> <mailto:Webobjects-dev@lists.apple.com>)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/webobjects%40a
>>>>> nazys.com 
>>>>> <https://lists.apple.com/mailman/options/webobjects-dev/webobjects%40
>>>>> anazys.com>
>>>>> 
>>>>> This email sent to webobje...@anazys.com
>>>> 
>>> 
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:
>>> <https://lists.apple.com/archives/webobjects-dev/attachments/20200129/ecb132
>>> 3e/attachment.htm>
>>> 
>>> ------------------------------
>>> 
>>> Subject: Digest Footer
>>> 
>>> _______________________________________________
>>> Webobjects-dev mailing list
>>> Webobjects-dev@lists.apple.com
>>> https://lists.apple.com/mailman/listinfo/webobjects-dev
>>> 
>>> 
>>> ------------------------------
>>> 
>>> End of Webobjects-dev Digest, Vol 17, Issue 32
>>> **********************************************
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com 
>> <mailto:Webobjects-dev@lists.apple.com>)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/listfez%40dakri.com 
>> <https://lists.apple.com/mailman/options/webobjects-dev/listfez%40dakri.com>
>> 
>> This email sent to list...@dakri.com
> 

 _______________________________________________
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