【问题标题】:JSF related Maven Configuration marker in EclipseEclipse 中与 JSF 相关的 Maven 配置标记
【发布时间】:2013-02-22 07:36:03
【问题描述】:

我正在开发一个 Maven web 应用程序,它由两个 war 文件组成,使用覆盖的方法。该战争文件正在使用 JSF 1.2 依赖项。我在构建、部署或运行​​项目时没有问题,一切正常,但是我得到了一个让我发疯的错误标记:

看起来 Eclipse 在我的战争中并没有注意到 Dynamic Web Module 2.5,即使我安装了这个方面。现在我正在使用 Eclipse Juno,但我在以前的版本中也遇到了这个问题。似乎 JSF 1.2 方面存在一些问题。那是我的 org.eclipse.wst.common.project.facet.core.xml 文件:

主要项目

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="2.5"/>
  <installed facet="jst.jsf" version="1.2"/>
  <installed facet="jst.jaxrs" version="1.0"/>
  <installed facet="jboss.m2" version="1.0"/>
</faceted-project>

战争依赖

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="2.5"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="jst.jaxrs" version="1.0"/>
  <installed facet="jboss.m2" version="1.0"/>
  <installed facet="jst.jsf" version="1.2"/>
</faceted-project>

有人遇到过类似的问题吗?我认为构面配置已正确完成,所以不知道为什么会出现此错误..

更新

这可能是服务器运行时配置问题,但如果我转到我的项目配置,在 Java Build PathLibraries 选项卡中,我发现的所有内容都是 JRE 系统库附加了 JavaSE-1.6 和 Maven 依赖项。似乎没有粘贴服务器运行时。

【问题讨论】:

  • 您在使用最新的 m2e 和 m2e-wtp 与 JSF 配置器吗?我知道最近的版本解决了许多问题。 dev.eclipse.org/mhonarc/lists/m2e-users/msg03820.html
  • 我将 Eclipse 相关文件还原到分支项目(以匹配同事配置),现在它似乎可以工作了。以前我在 Project Facets Java -> Server Faces 子菜单中有三个选项,现在我只有两个,我选择“禁用库配置”。以前我有 User libraryDisable library Configuration 和与 Maven 和 JSF 相关的第三个选项(即使我也选择了相同的选择)。

标签: eclipse maven m2eclipse jsf-1.2 facet


【解决方案1】:

那里的警告表明“some where”在您的项目中,动态 Web 模块设置为低于 2.5 的版本

根据您提供的 faces 配置,您似乎使用的是 DWM 2.5

<installed facet="jst.web" version="2.5"/>

所以在你项目的其他地方,有低版本的参考。

  • 检查您的网络应用定义和架构,web.xml 文件。应该是 web-app_2_5

<web-app xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" 
 web="http://java.sun.com/xml/ns/javaee/webapp_2_5.xsd"
 schemalocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  • web.XML 文档类型

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

【讨论】:

  • 你肯定击中了家。我将 web.xml 的版本设置为 2.4。非常感谢!
【解决方案2】:

最有可能发生的是您的服务器运行时,在 向导中的上一页,正在过滤 Web 模块版本 根据其适配器允许的情况提供。

我使用的是 Tomcat 6 - 它对我来说非常好用并且支持 2.5 版。

【讨论】:

  • 我明白你的意思,但我仍然不知道如何解决这个问题。如果我去 Properties->Java build path->Libraries,应该配置运行时,我没有将服务器运行时附加到我的项目。我的两个战争文件中也发生了同样的情况。我只附加了 Maven 依赖项和 JRE 系统库。我用这一点更新我的问题,谢谢。
【解决方案3】:

@Xtreme Biker

更改动态网络模块的简单方法

单击右键单击项目 -> 属性 -> 项目方面 -> 单击链接,然后根据需要更改动态 Web 模块部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多