From: Robert Mecklenburg <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] To: Axis Users <[EMAIL PROTECTED]> Subject: NoClassDefFoundError writing simple handler Date: 30 Apr 2004 09:19:47 -0600
I'm a newbie to web services and axis and I'm trying to implement a simple handler.
1. The handler code is:
public class LogHandler extends BasicHandler { public final void invoke(MessageContext msgContext) throws AxisFault { System.out.println("handler invoked!"); } }
2. I modified my server-config.wsdd with:
<handler name="loghandler" type="java:com.realmsys.mdms.server.key.LogHandler">
<parameter name="wsdlURL" value="/axis/LogHandlerService-impl.wsdl"/>
<parameter name="serviceName" value="LogHandlerService"/>
<parameter name="namespace" value="http://com.realmsys.mdms/LogHandlerService-impl.wsdl"/>
<parameter name="portName" value="Debug"/>
</handler>
3. I added my new handler to my service:
<service name="KeyManagerService" provider="java:RPC">
<requestFlow> <handler type="loghandler"/> </requestFlow>
<responseFlow> <handler type="loghandler"/> </responseFlow>
<parameter name="allowedMethods" value="*"/> ...
4. When I deploy and run this configuration I get this message returned to the client app:
AxisFault faultCode: {http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (500)Internal Server Error faultActor: faultNode: faultDetail: {}string: return code: 500
Apache Tomcat/5.0.19 - Error report
HTTP Status 500 -
type
Exception report
message
description
The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.NoClassDefFoundError: org/apache/axis/handlers/BasicHandler
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:537)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
java.net.URLClassLoader.access$100(URLClassLoader.java:55)
java.net.URLClassLoader$1.run(URLClassLoader.java:194)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:187)
java.lang.ClassLoader.loadClass(ClassLoader.java:289)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
java.lang.ClassLoader.loadClass(ClassLoader.java:235)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1296)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1230)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
...
Without the <requestFlow>/<responseFlow> clauses my pivot service appears to work fine. It goes sour only with the new handler. It appears there is some kind of security issue since *clearly* the axis.jar files are loaded and running (it is deep in axis code when it throws the exception).
Any suggestions would be greatly appreciated!
Cheers, Robert
P.S. I've tried many permutations, of course, one which may be of particular interest is that I replaced my service declaration in the wsdd file with the simpler:
<handler name="loghandler" type="java:com.realmsys.mdms.server.key.LogHandler"/>
as I saw several such short declarations in the default wsdd file. The change did not cure the problem.
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar � get it now! http://toolbar.msn.com/go/onm00200415ave/direct/01/
