Child pages
  • Java Client - Trouble-Shooting

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Server-Side Errors

Server exception: Unable to perform the server invocation: The method clientSideRequestGetXMLs was not found.

No Format
[2008-6-23 15:1:0 EDT] <WorkerThread0> Server exception: Unable to perform the server invocation: The method clientSideRequestGetXMLs was not found.
[2008-6-23 15:1:0 EDT] <WorkerThread0> java.lang.IllegalArgumentException: Unable to perform the server invocation: The method clientSideRequestGetXMLs was not found.
	at com.webobjects.eodistribution.common._EOServerInvocation.doInvokeWithTarget(_EOServerInvocation.java:128)
	at com.webobjects.eodistribution.EODistributionContext._processClientRequest(EODistributionContext.java:494)
	at com.webobjects.eodistribution.EODistributionContext.responseToClientMessage(EODistributionContext.java:582)
	at com.webobjects.eodistribution.WOJavaClientComponent.handleClientRequest(WOJavaClientComponent.java:1148)
	at com.webobjects.eodistribution.WOJavaClientComponent.invokeAction(WOJavaClientComponent.java:445)
	at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
	at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
	at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
	at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
	at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
	at com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
	at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
	at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
	at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
	at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
	at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:442)
	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:613)

This error is generated at application startup when you have the wojavaclient.jar loading prior to the regular WO Frameworks - specifically JavaEOApplication.framework.

Client-Side Errors

java.lang.NoClassDefFoundError

No Format
Exception in thread "AWT-EventQueue-0" com.webobjects.foundation.NSForwardException [java.lang.NoClassDefFoundError] com/company/myapp/common/MyClass:java.lang.NoClassDefFoundError: com/company/myapp/common/MyClass
	at com.webobjects.foundation.NSForwardException._runtimeExceptionForThrowable(NSForwardException.java:39)
	at com.webobjects.eodistribution.common._EOReferenceRecordingCoder$_Decoder.decodeObject(_EOReferenceRecordingCoder.java:769)
	at com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeObject(_EOReferenceRecordingCoder.java:611)
	at com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeObjects(_EOReferenceRecordingCoder.java:649)
	at com.webobjects.foundation.NSArray.decodeObject(NSArray.java:1326)
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.webobjects.eodistribution.common._EOReferenceRecordingCoder$_Decoder.decodeObject(_EOReferenceRecordingCoder.java:767)
	at com.webobjects.eodistribution.common._EOReferenceRecordingCoder.decodeObject(_EOReferenceRecordingCoder.java:611)
	at com.webobjects.eodistribution.common._EOServerReturnValue.decodeObject(_EOServerReturnValue.java:65)
	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:585)
        ... (truncated for clarity)
Caused by: java.lang.NoClassDefFoundError: com/company/myapp/common/MyClass
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        ... (truncated for clarity)

If the client-side application is complaining about not being able to find classes that are part of a framework when run from within Eclipse, it means the the ClasspathClient.txt is missing classpath entries. This file is not automatically maintained by WOLips (yet). Any frameworks that you import into your project must have a corrosponding entry formatted as follows:

No Format
APPROOT/WebServerResources/Java/MyFramework.jar
Note
titleBe Careful

Don't use the WOROOT path of the framework (WOROOT/Library/Frameworks/MyFramework.framework/WebServerResources/Java/MyFramework.jar)
because this is only valid for the core WebObjects frameworks. Any other frameworks (yours, Wonder, etc) need to be located in the APPROOT.