Re: More problems: Error finding class ...
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 -
More problems: Error finding class ...
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]
Re: More problems: Error finding class ...
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]
Re: More problems: Error finding class ...
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]
Re: More problems: Error finding class ...
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]