[prev in list] [next in list] [prev in thread] [next in thread]
List: axis-user
Subject: NoClassDefFoundError writing simple handler
From: Robert Mecklenburg <mecklen () realmsys ! com>
Date: 2004-04-30 15:19:47
Message-ID: m23c6lpk6k.fsf () oops ! realmsys ! com
[Download RAW message or body]
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.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic