Eclipse构buildpath嵌套错误
我正在为我的课程开发一个简单的JSP / Servlet / Tomcat webapp。 教授要求我们使用与默认dynamicWeb项目结构略有不同的文件夹结构。 他不是使用webcontent文件夹,而是希望我们所有的源代码在src / main / java和src / main / webapp下。
当我运行应用程序时,我的欢迎文件显示正常,但是当我尝试访问我的servlet时,我得到:
Http 500 SEVERE: Allocate exception for servlet InitDb
抛出java.lang.ClassNotFoundException。 我很确定这是一个构buildpath错误。 我有最后/ src的构buildpath,但我收到警告
"Cannot nest 'final/src/main/webapp/WEB-INF/classes' inside 'final/src'. To enable the nesting exclude 'main/' from 'final/src'
我在我的部署程序集中有这个:
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
当我排除主要/警告消失,但它不能解决问题。 我将不胜感激任何意见。 谢谢。
即使我创build了一个新项目,我也遇到了同样的问题。 我在Eclipse中创build了Java项目,然后对它进行了初步化,然后进入了删除src/
Java构buildpath属性,并添加了src/main/java
和src/test/java
。 当我运行Maven更新时,它用来给出嵌套的path错误。
然后我终于意识到 – 因为我之前没有看到这个入口,所以当我将它初步化时,在pom文件中有一行<sourceDirectory>src</sourceDirectory>
行。 删除后已解决。
我想扔这个线程的非mavenish答案。
由于版本控制和严格的目录结构的原因,我无法按照Acheron的回答(最好的答案)做类似于删除src/
和添加src/main/java
和src/test/java
到构buildpath。
实际上,我已经和这个嵌套的构buildpath问题进行了几个星期的对抗。 这个问题的答案暗示在错误信息中:
To enable the nesting exclude 'main/' from 'final/src'
在构buildpath中,您需要通过单击Excluded: (None)
编辑您的Inclusion and Exclusion Patterns
,然后Edit...
:
在那里你可以添加main/webapp/WEB-INF/classes
作为Exclusion Pattern
。 然后,它应该允许您将main/webapp/WEB-INF/classes
作为单独的源文件夹添加到构buildpath。
尝试这个:
从库标签:
Eclipse -> right click on project name in sidebar -> configure build path -> Libraries
删除您的Web应用程序库:
click on "Web App Libraries" -> click "remove"
将它们添加回来:
click "Add Library" -> click to highlight "Web App Libraries" -> click "next" -> confirm your desired project is the selected option -> click "Finish"
突出显示“Web App库”:
你必须将源代码和构build输出的目标目录分开。 同样重要的是要注意,源目录中没有任何类文件可以结束。 这并不违反你的教授的build议 – 实际上他正在推广为./src/main/java和./src/main/webapp开发的maven标准源代码结构。 第二个应该举行例如。 必需的WEB-INF / web.xml文件,但是你永远不会把实际的类放在那里。
你需要改变的是你的目标目录。 我build议按照相同的标准,并select“./target”这个名字。 所有构build的文件将进入这里,打包将导致一个正确的可部署的神器。 如果你稍后再转向使用maven,那么它也将以一种脚本化的,可重复的方式来实现这一点。
希望清除你的问题。
我有同样的问题和正确的答案上面没有为我工作。 我所做的解决它是去Build Path->Configure Build Path
并在源选项卡我删除所有来源(只有一个来源),并从那里重新configuration它们。 我最终从eclipse中删除项目,并再次导入maven项目,以清除错误。
要使Eclipse编译器正常工作,需要从源path中删除final / src,并添加final / src / main / java。 这也可以解决你的问题,因为现在构build目录将不在Java源文件夹内。
我接受的解决scheme并不适合我,但是我在项目设置上做了一些挖掘。
下面的解决scheme为我解决了,至less如果您使用的是dynamicWeb项目:
- 右键点击项目然后属性。 (或者在项目中input)
- 在部署大会下删除“src”。
你应该可以添加src / main / java。 它也自动将其添加到部署程序集。
警告:如果您添加了src / test / java注释,它也将其添加到部署程序集。 一般来说,你不需要这个。 你可以删除它。
创build两个文件夹: final/src/
来存储源代码,以及final/WebRoot/
。
你不能把源代码和webroot放在一起。 我想你可能会误解你的老师。