【发布时间】:2020-09-04 23:05:06
【问题描述】:
我有一个简单的 maven web 项目,由两个模块组成(完整源代码在https://github.com/0xfthul/bug):
- bug-fragment:一个 Web 片段项目
- bug-war:试图在
index.jsp中包含片段中的一个文件的战争
Eclipse 显示以下错误
Fragment "/included.jspf" was not found at expected path /bug-war/src/main/webapp/included.jspf
screenshot of my eclipse screen, showing the error
当我在 wildfly 中运行这个项目时,它运行时没有错误。 如果我在不使用 maven 的情况下创建类似的项目,eclipse 不会显示错误。
在检查错误时,我发现了以下错误报告 (2013): https://bugs.eclipse.org/bugs/show_bug.cgi?id=398698 错误报告中提供的项目运行良好。
Eclipse 版本:2019-09 R (4.13.0) 构建 ID:20190917-1200
项目结构:
bug
├── bug-fragment
│ ├── pom.xml
│ └── src
│ └── main
│ └── resources
│ └── META-INF
│ ├── resources
│ │ └── included.jspf
│ └── web-fragment.xml
├── bug-war
│ ├── pom.xml
│ └── src
│ └── main
│ └── webapp
│ ├── WEB-INF
│ │ └── web.xml
│ └── index.jsp
└── pom.xml
这是来自 bug-war 项目的 org.eclipse.wst.common.component 文件的内容:
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="bug-war-1.0">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<dependent-module archiveName="bug-fragment-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/bug-fragment/bug-fragment">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="context-root" value="bug-war"/>
<property name="java-output-path" value="/bug-war/target/classes"/>
</wb-module>
</project-modules>
【问题讨论】:
-
Eclipse 是否知道这两个项目是相关的,比如在主 war 项目的 Deployment Assembly 属性页上?在链接的 bug 的示例项目中,BugDemo1/.settings/org.eclipse.wst.common.component 显示它已在那里连接在一起。理想情况下,当您纯粹处理 Maven 项目时,m2e-wtp 插件或标准 m2e 行为会为您将两者联系在一起。
-
是的,bug-war 项目指向 Deployment Assembly 页面中的 bug-fragment。我还检查了 Project References 属性页。未选择错误片段,但选择它没有任何作用,并且错误继续出现。
-
如果您在片段项目中编辑
org.eclipse.wst.common.component文件,您应该看到附加到wb-resource标记的属性tag="defaultRootSource"为不存在的src/main/java文件夹生成。将属性移动到您拥有的文件夹的标签作为一种解决方法,只要您在之后重新验证主 Web 应用程序。 -
您能为此打开一个错误报告吗?
-
应用建议的解决方法后,eclipse 停止显示包含错误。在bugs.eclipse.org/bugs/show_bug.cgi?id=563352 提交错误报告感谢您对 Nitin 的支持!
标签: eclipse maven jsp eclipse-wtp web-fragment