我刚刚从Helios切换到Eclipse Indigo,尝试使用WTP在Tomcat 6上运行支持Maven的Web项目时,我遇到了一些麻烦。
我遇到了Tomcat没有看到Maven依赖项的经典问题。在Helios中,解决方法是通过以下方式将Maven依赖项添加到Deployment Assembly: 项目属性 - >部署组件 - >添加“Java Build Path Entries” - > Maven依赖
不幸的是,没有列出'Java Build Path Entries'选项,只列出'Folder'和'Project'。我不确定这是故意的,还是我的设置有问题。
为了消除外部因素,我使用以下设置:
此时,我看到与我缺少的依赖项有关的ClassNotFoundException。 如果我运行'mvn war:war'并在项目的部署程序集中包含已组装的'WEB-INF / lib'目录,那么当然可以正确地选择依赖项 - 对于快速修复很好,但不理想。
我读到的与类似问题相关的大部分问题都归结为缺少WTP集成模块,但这对我来说似乎不是问题。
我做错了吗?
答案 0 :(得分:3)
new maven project
的包装类型似乎是jar
。如果是这样,您可以将其更改为war
并尝试。
答案 1 :(得分:1)
这是另一种解决方案: 修复.classpath文件
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
- <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
答案 2 :(得分:1)
右键点击项目
选择部署程序集&gt;单击添加
从弹出窗口中选择Java build Path Entries,单击Next
使用Ctrl和鼠标选择所有显示的lib
之后,您将看到.classpath文件中的更改。
在服务器标签中再次发布您的项目。
答案 3 :(得分:0)
在Strange behavior of Eclipse WTP deployment of dependencies in Tomcat server
中回答/讨论了另一个与WTP tomcat相关的问题(如果打包已经是WAR,但未部署lib)