首页 > 解决方案 > 添加了 faces-config.xml 但仍然无法达到目标

问题描述

我有一个在嵌入式码头上运行的 JSF 应用程序。当我从 Eclipse 运行它而不是从命令行运行它时它可以工作。我意识到这是因为 eclipse 使用文件夹而 cli 使用 jar。我认为,在谷歌搜索之后,这是因为我的 jar 缺少一个faces-config.xml. 我在 META-INF 文件夹中添加了一个,但我Target unreachable的 xhtml 中的 bean 仍然出现错误。

faces-config.xml 的图片

如何检查 JSF 是否确实在扫描我的 jar 文件@ManagedBean

附言。我用maven构建我的项目的jar,将它复制到我的lib文件夹然后从cli运行它java -cp "lib\*" com.test.MainSystem

标签: jsfannotationsjetty

解决方案


调试后AnnotationConfiguration我可以看到 Jetty 只扫描WEB-INF.

幸运的是,它们提供了一种添加外部 jar 的方法。添加这个让我启动并运行......

WebAppContext webapp = new WebAppContext();

// Add "this" jar to the list of jars to scan for annotations
String jarPath = JettyServer.class.getProtectionDomain().getCodeSource().getLocation().getPath();
webapp.setExtraClasspath(jarPath);

推荐阅读