【发布时间】:2011-05-23 11:44:23
【问题描述】:
我正在开发一个 JSF 2.0 应用程序 (Mojarra+Primefaces) 并使用 maven 构建环境。在我使用 faces-config.xml 文件注册我的自定义转换器和验证器之前,到目前为止一切都很顺利。然后我看到了 JSF 2.0 的一些语法糖——基于注解的配置方法。现在我想使用它,而不是 xml 配置文件。一个问题是 Mojarra 没有扫描我的注释类。我发现我需要将<faces-config ... metadata-complete="false"> 属性设置为false。现在它可以工作,但前提是我以mvn tomcat:run-war 目标而不是mvn tomcat:run 动态项目启动我的应用程序,这对于开发来说更舒适。 JSP 2.0 的规范说:
如果WEB-INF/faces-config.xml文件中的元素 包含值为“true”的元数据完整属性,实现不得执行注释 扫描除实现本身提供的那些类之外的任何类。否则,继续 跟随。
如果运行时发现应用程序配置资源中的条目与注释之间存在冲突,则 应用程序配置资源中的条目优先。 必须扫描 WEB-INF/classes 中的所有类。
对于应用程序的 WEB-INF/lib 目录中的每个 jar,如果 jar 包含“META-INF/faces-config.xml” 文件或匹配正则表达式“.*.faces-config.xml”的文件(甚至是空的),所有类在 必须扫描那个罐子。
但它没有说明在 maven 构建环境中运行的动态项目 :)!有没有人可以解决这个问题?
干杯,
凯文
【问题讨论】:
标签: tomcat configuration maven jsf-2