Here are the diffs, built against the 5-31-02
release, with failure and success cases both tested via GetQuote. I've
never built a patch before, so if I need to do something else, let me
know.
-----------------------------------CUT BELOW
HERE-------------------------------
RPCElement.java
86c86
<
OperationDesc [] operations) throws
ClassNotFoundException
---
>
OperationDesc [] operations)
106,109d105
<
<
if (serviceDesc == null)
{
<
throw new ClassNotFoundException(JavaUtils.getMessage("noClassForService00",
lc));
<
}
BodyBuilder.java
158,172c158,159
<
<
try {
<
<
element = new RPCElement(namespace, localName,
prefix,
<
attributes, context, operations);
<
<
} catch (ClassNotFoundException e) {
<
<
// SAXException is already known to this method, so
I
<
// don't have an exception-handling propogation
explosion.
<
//
<
throw new
SAXException(e);
<
}
<
<
---
>
element = new RPCElement(namespace, localName,
prefix,
>
attributes, context, operations);
axisNLS.properties
280d279
< noClassForService00=Could not find
class for the service named: {0}\nHint: you need to <b>copy</b>
your class files/tree into the right location (which depends on the servlet
system you are using).
----------------------------------------- END CUT
ABOVE HERE ----------------------------------------
----- Original Message -----
Sent: Friday, May 31, 2002 2:55
PM
Subject: RE: Proposed change to
RPCElement.java & BodyBuilder.java
John,
I
think this is a good patch. The patch needs to have the string message
go in the message file (in utils.axisNLS.properties) and needs to be
applied to the current source.
John, can you rev the patch, then we can stick it
in.
I
wil try and get to a revised patch, but if I am slow, someone else can feel
free to apply it.
Thanks John!
--
Tom Jordahl
Macromedia
Hello,
I have been learning SOAP via
Axis, and I encountered a NullPointerException in RPCElement() when trying
to test out a new service that I had written. I eventually
discovered that this was caused by Axis's inability to find the class
file(s) for my service (I had used a link instead of copying the
directory).
I submit that it would be more
informative to the user (and more elegant) to throw a
ClassNotFoundException instead of a NullPointerException in that case, to
help the user more quickly discover the "directory tree copy"
requirement.
I have been able to test the failure
case using SimpleAxisServer and the 5-27 build (it successfully throws
the exception), but I haven't been able to test the success case, and I
can't spend any more time on it right now. I am attaching the change
diffs, in the hopes that you might be able to incorporate them and save
someone else the pain that I went through.
Thanks,
jb