A customer of mine has a very old WebObjects app running on an old Sun Solaris
box. The app was built on WindowsXP with Project Builder. No Wonder anywhere to
be seen.
We are trying to get this app (the xyz.woa) up and running on a MacMini OS X
10.9.5. We have both Java 1.6 and Java 8 available. We succeeded to start the
app via Monitor. The default Main shows but the app fails with the following
exception when the code tries to execute this line:
loggedUser = (ZpdUser)EOUtilities.objectMatchinKeyAncValue(ec, "ZpdUser",
"sUserId", userId);
Exception logging in User: com.webobjects.foundation.NSForwardException
[java.lang.NoSuchFieldError] _EOGlobalModelLock:java.lang.NoSuchFieldError:
_EOGlobalModelLock
com.webobjects.foundation.NSForwardException [java.lang.NoSuchFieldError]
_EOGlobalModelLock:java.lang.NoSuchFieldError: _EOGlobalModelLock
at
com.webobjects.foundation.NSForwardException._runtimeExceptionForThrowable(NSForwardException.java:39)
at
com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:124)
at
com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
at
com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
at
com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.requestStore(EOObjectStoreCoordinator.java:223)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.objectStoreForFetchSpecification(EOObjectStoreCoordinator.java:287)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:476)
at
com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4069)
at
com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4444)
at
com.webobjects.eoaccess.EOUtilities.objectsMatchingValues(EOUtilities.java:216)
at
com.webobjects.eoaccess.EOUtilities.objectsMatchingKeyAndValue(EOUtilities.java:190)
at
com.webobjects.eoaccess.EOUtilities.objectMatchingKeyAndValue(EOUtilities.java:320)
at LoginUser.login(LoginUser.java:51)
at DirectAction._doLogin(DirectAction.java:42)
at DirectAction.zpdGuestLoginAction(DirectAction.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.webobjects.appserver.WODirectAction.performActionNamed(WODirectAction.java:144)
at
com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:259)
at
com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:158)
at
com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at
com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
at
com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
at java.lang.Thread.run(Thread.java:695)
Caused by: java.lang.NoSuchFieldError: _EOGlobalModelLock
at ZpdDB$UnbrokenEOModel.entityNamed(ZpdDB.java:41)
at
com.webobjects.eoaccess.EOModelGroup.entityNamed(EOModelGroup.java:493)
at
com.webobjects.eoaccess.EODatabaseContext._cooperatingObjectStoreNeeded(EODatabaseContext.java:1169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
The very same code running against the same database works from Solaris. I have
currently no easy access to the source (somewhere on a XP Machine). Any idea
what could be wrong? For a test the customer has copied the xyz.woa directory
to a different Sun workstation (where Apple WebObjects runtime has been
installed) and tried it there with the very same exception. So it looks as if
we miss something in the environment setup. Question is: What?
Background: The customer has once (>4 years ago) asked me to port the
application to the modern world but then cancelled the project. And now the old
Solaris box is dying and the customer desparately needs a replacement
deployment environment. About a dozen apps have been moved over from Soalris to
OS X with no problem (all Wonder), just this baby refuses to work (no Wonder -
pun intended). And of course we have no time now to Wonderize, recompile, and
test things.
Thanks for any hints
---markus---
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]