我正在使用Eclipse 3.7(STS)和在IDE中运行的Tomcat 7.我创建了一个新的Dynamic Web项目,并将一个JSP文件添加到Web内容根文件夹中.我可以运行Tomcat并从Eclipse中访问JSP而没有任何问题.
我在用户库中为项目添加了一些第三方JAR(我没有使用maven或auto dependecies管理).在JSP中,我从项目的JAR文件中引用了一个类,我可以毫无问题地编译它,但是当我在Tomcat上部署时,JSP会抛出ClassNotFoundException.显然,Tomcat无法从我的库设置中找到JAR.我尝试为Tomcat Server创建Run As配置,并设置classpath以匹配项目的类路径设置,但我仍然得到相同的classnotfound问题.
我可以通过手动将所有项目JAR复制到WEB-INF/lib目录来解决这个问题,因此webapp可以找到所有依赖项,但这是荒谬的,我不认为这是解决方案,因为它是维护的噩梦.
我错过了什么吗?
使用Eclipse 3.7 Indigo for Java EE Developers时,有一种叫做Deployment Assembly的东西.我可以在google上找到它并且理解它类似于 J2EE模块依赖项,在那里我们可以选择jar并且在WAR的情况下它位于EAR文件夹或WEB-INF/lib中.现在我怀疑的是,
我有一个JavaProject 依赖项.我已经通过classpath变量添加了所有依赖的Jars .现在,Dependencies项目被添加为我的Web Project TestWebProject的依赖项.Web项目的编译是正确的,但在运行时我得到一个错误,因为找不到一些jar.我可以在Dependencies Project的Deployment Assembly中修复这个包含jar ,这是一个独立的项目.
问题是,为什么我必须在部署程序集中修复jar,因为,首先,它是一个独立的项目,第二个是如果我没有这个部署程序集,怎么能修复它?