Re: [Tomcat] -Classpath ordering issue (Dev WO)
Re: [Tomcat] -Classpath ordering issue (Dev WO)
- Subject: Re: [Tomcat] -Classpath ordering issue (Dev WO)
- From: Dev WO via Webobjects-dev <email@hidden>
- Date: Fri, 28 Feb 2020 16:23:23 +0100
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 <email@hidden> 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
> email@hidden <mailto:email@hidden>
>> On Jan 30, 2020, at 04:13 AM, Dev WO via Webobjects-dev
>> <email@hidden <mailto:email@hidden>>
>> 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, <email@hidden
>>> <mailto:email@hidden>> <email@hidden
>>> <mailto:email@hidden>> 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=email@hidden
>>> <mailto:webobjects-dev-bounces+matthew.longden=email@hidden>>
>>> On
>>> Behalf Of email@hidden
>>> <mailto:email@hidden>
>>> Sent: 29 January 2020 17:57
>>> To: email@hidden <mailto:email@hidden>
>>> Subject: Webobjects-dev Digest, Vol 17, Issue 32
>>> Importance: Low
>>>
>>> Send Webobjects-dev mailing list submissions to
>>> email@hidden <mailto:email@hidden>
>>>
>>> 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
>>> email@hidden
>>>
>>> You can reach the person managing the list at
>>> email@hidden
>>>
>>> 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 <email@hidden>
>>> To: "email@hidden" <email@hidden>
>>> Subject: [Tomcat] -Classpath ordering issue
>>> Message-ID: <email@hidden>
>>> 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 <email@hidden>
>>> To: email@hidden
>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>> Message-ID: <email@hidden>
>>> 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 (email@hidden)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> r.com.pl
>>>>
>>>> This email sent to email@hidden
>>>
>>> --
>>> 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 <email@hidden>
>>> To: webObjects-Dev Mailing List <email@hidden>
>>> Subject: Fwd: [Tomcat] -Classpath ordering issue
>>> Message-ID: <email@hidden>
>>> Content-Type: text/plain; charset="utf-8"
>>>
>>> Forgot to send to the list
>>>
>>>> Begin forwarded message:
>>>>
>>>> From: Dev WO <email@hidden>
>>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>>> Date: 29 January 2020 at 09:50:13 CET
>>>> To: Konrad Kubacki <email@hidden>
>>>>
>>>> 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
>>> <email@hidden <mailto:email@hidden>>
>>> 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 (email@hidden
>>> <mailto:email@hidden>)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> wer.com.pl
>>>>>> ower.com.pl>
>>>>>>
>>>>>> This email sent to email@hidden
>>>>>> <mailto:email@hidden>
>>>>> --
>>>>> 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 (email@hidden
>>> <mailto:email@hidden>)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> nazys.com
>>>>> anazys.com>
>>>>>
>>>>> This email sent to email@hidden
>>>>
>>>
>>> -------------- 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 <email@hidden>
>>> To: webObjects-Dev Mailing List <email@hidden>
>>> Subject: Re: [Tomcat] -Classpath ordering issue
>>> Message-ID: <email@hidden>
>>> 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 <email@hidden> 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
>>> <email@hidden <mailto:email@hidden>>
>>> 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 (email@hidden
>>> <mailto:email@hidden>)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> wer.com.pl
>>>>>> ower.com.pl>
>>>>>>
>>>>>> This email sent to email@hidden
>>>>>> <mailto:email@hidden>
>>>>> --
>>>>> 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 (email@hidden
>>> <mailto:email@hidden>)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> nazys.com
>>>>> anazys.com>
>>>>>
>>>>> This email sent to email@hidden
>>>>
>>>
>>> -------------- 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
>>> email@hidden
>>> 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 (email@hidden
>> <mailto:email@hidden>)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
_______________________________________________
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