Okay, I gave in and put everything in the WEB-INF/classes directory. It works that way. Thanks for your help!

--David

Kenney Westerhof wrote:

On Mon, 29 Aug 2005, David Turley wrote:

Well client side it works fine, your setup is OK.

However, you got a ServletException, indicating a server side error.
And server side, those classes really can't be found. Even if they're
in WEB-INF/classes/. Say you have com.mycompany.TestClass
in WEB-INF/classes/test-classes/com/mycompany/TestClass.class.

The webservice can't find that class because it's in the wrong dir.
It looks for WEB-INF/classes/com/mycompany/TestClass.class.

So in the server-side war you can only have those classes in
WEB-INF/classes DIRECTLY, no extra directories!

I suggest you just put all jars in WEB-INF/classes. Doesn't really matter
where they are; if you are debugging, you can see the source location
anyway which tells you immediately what kind of source it is.

-- Kenney

Hi Kenney,

You said that if I'm running the classes straight from Eclipse (which I
am) I could add WEB-INF/classes as a src directory.  I have the test
source directories added as source directories with the correct output
folders.  Here are the lines from my .classpath file:

   <classpathentry excluding="**/CVS/" kind="src" path="src"/>
   <classpathentry excluding="**/CVS/"
output="web/WEB-INF/test-classes/cactus-classes" kind="src"
path="test/cactus-src"/>
   <classpathentry excluding="**/CVS/"
output="web/WEB-INF/test-classes/junit-classes" kind="src"
path="test/junit-src"/>

Is that sort of what you meant?  Should that work?  It doesn't,
unfortunately.  If you can't see anything wrong with that, I'll just
have Eclipse output my test classes into WEB-INF/classes...  I'd rather
not.  Maybe I'm just stubborn.  When I think something SHOULD work, I
want it to :-).

Kenney Westerhof wrote:

On Mon, 29 Aug 2005, David Turley wrote:

Hi David,

If you deploy that war, the classes NEED to be in WEB-INF/classes.
You could also jar them up and put them in WEB-INF/lib/.
Those are the only two places classes should be placed in web
applications.

If you run those classes directly from eclipse, you could add
WEB-INF/test-classes as a source folder (or, if you have a separate source
folder for the test-classes sources, modify .classpath and specify
an output=".../WEB-INF/test-classes" to the correct line; can't edit them
from within eclipse).
But, in the war, they really NEED to be in the classpath or else the
Webapp classloader won't find them! And it really doesn't matter where
your classes are, as long as your sources are nicely organized.

HTH,

        Kenney



Hello again,

  Yes, I'm still having problems, and most of them have nothing to do
with computers.  But this one does.  When I first started playing with
Cactus, I was just running things from Eclipse and the JUnit test
runner, but then I wanted to automate things, so I spent a lot of time
working with Ant.  At first I had put my test classes in the same
directories as the classes they were testing, but I decided that was
messy and decided to make separate src and class directories for the
test classes.  That works great with ant because you could have your
test classes on mars as long as you could tell ant where to find them.
Not so with the JUnit integration in Eclipse.  It cannot find my test
classes.  It worked fine when they were going to the WEB-INF/classes
directory, but now they're in WEB-INF/test-classes and I get the
following when I try to run tests:

javax.servlet.ServletException: Error finding class
[com.cleanbrain.cleantelligent.presentation.action.LoadActionCactusTest]
using both the Context classloader and the webapp classloader. Possible
causes include:
  - Your webapp does not include your test classes,
  - The cactus.jar is not located in your WEB-INF/lib directory and
your Container has not set the Context classloader to point to the
webapp one

followed by the rest of the stack trace.  Well, the cactus.jar is in the
correct place.  That's about all I know.  I don't know much (anything)
about classloaders, so maybe that's my problem.  Maybe it's just another
I.D.10T. error.  :-)  I'm learning....

Thanks,
David

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
Kenney Westerhof
http://www.neonics.com
GPG public key: http://www.gods.nl/~forge/kenneyw.key

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
Kenney Westerhof
http://www.neonics.com
GPG public key: http://www.gods.nl/~forge/kenneyw.key

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to