AllieCat
AllieCat

Reputation: 3960

java.lang.ClassNotFoundException for a class in external JAR

I have a maven project in Eclipse Java EE IDE for Web Developers. When running Tomcat, I'm getting an error for a class that I can see that I have included.

My question is - do I have to add these JARs to an additional place because of Tomcat Apache?

Error:

SEVERE: Servlet /Resource threw load() exception java.lang.ClassNotFoundException: org.odata4j.jersey.producer.resources.ODataApplication at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:240) at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:220) at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:711)

And here is the class in my Library:

enter image description here

UPDATE: My Web Deployment Assembly looks like: enter image description here

Upvotes: 0

Views: 3997

Answers (1)

aglassman
aglassman

Reputation: 2653

The issue you are seeing is due to the fact that tomcat is looking at the wrong directory. It is currently most likely pointed at your src/main/webapp directory of your project. This does not jive with how maven works. Maven downloads the dependencies, but will only include them in the target build. You need to have the tomcat server look at target/myapp-0.0.1, or build to a war and deploy that way. The easiest solution as of now, would be for you to use the tomcat plugin. After setting it up, you can use an imbedded server, and just use the following command 'mvn tomcat:run'.

Maven Tomcat Plugin Docs

UPDATE:

I looked at the properties settings, and you should actually be able to edit the "Web Deployment Assembly" settings for your project (under project properties). Check screenshot for how I have mine setup. Notice how Maven Dependencies is mapped. https://i.sstatic.net/PCIT1.jpg

Upvotes: 1

Related Questions