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/javasrc/test/java 。 当我运行Maven更新时,它用来给出嵌套的path错误。
然后我终于意识到 – 因为我之前没有看到这个入口,所以当我将它初步化时,在pom文件中有一行<sourceDirectory>src</sourceDirectory>行。 删除后已解决。

我想扔这个线程的非mavenish答案。

由于版本控制和严格的目录结构的原因,我无法按照Acheron的回答(最好的答案)做类似于删除src/和添加src/main/javasrc/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库”:

突出显示“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项目:

  1. 右键点击项目然后属性。 (或者在项目中input)
  2. 在部署大会下删除“src”。

你应该可以添加src / main / java。 它也自动将其添加到部署程序集。

警告:如果您添加了src / test / java注释,它也将其添加到部署程序集。 一般来说,你不需要这个。 你可以删除它。

创build两个文件夹: final/src/来存储源代码,以及final/WebRoot/

你不能把源代码和webroot放在一起。 我想你可能会误解你的老师。