jsf - 添加了 faces-config.xml 但仍然无法达到目标
问题描述
我有一个在嵌入式码头上运行的 JSF 应用程序。当我从 Eclipse 运行它而不是从命令行运行它时它可以工作。我意识到这是因为 eclipse 使用文件夹而 cli 使用 jar。我认为,在谷歌搜索之后,这是因为我的 jar 缺少一个faces-config.xml
. 我在 META-INF 文件夹中添加了一个,但我Target unreachable
的 xhtml 中的 bean 仍然出现错误。
如何检查 JSF 是否确实在扫描我的 jar 文件@ManagedBean
?
附言。我用maven构建我的项目的jar,将它复制到我的lib文件夹然后从cli运行它java -cp "lib\*" com.test.MainSystem
解决方案
调试后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);
推荐阅读
- sql - SQL 脚本使用 Q119、Q318 到 Q418 对度量的引用。任何建议的代码改进
- python-3.x - 无法通过 Ethernet-GPIB 适配器连接到功率计
- f# - 无法为 Microsoft.FSharp.Core.Unit 生成自动编码器。请传递一个额外的编码器
- c# - 如何在 Razor 页面中显示 .rst 文件内容?
- ios - IOS safari 实习生 3.4
- javascript - 如何在单击按钮时注入模块?
- java - 表达式的类型必须是数组类型,但它解析为 JSONArray
- javascript - 关闭浏览器时发送 FCM 推送通知,重新打开时不显示
- php - 我如何为每个 user_id 获取给定数量的记录,例如 200,其中列“姓氏”=“某个值”
- c# - 在 swagger C# .net 核心中发送带有 FormData 的字符串数组?