Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 添加了faces-config.xml,但仍然无法访问目标_Jsf_Annotations_Jetty - Fatal编程技术网

Jsf 添加了faces-config.xml,但仍然无法访问目标

Jsf 添加了faces-config.xml,但仍然无法访问目标,jsf,annotations,jetty,Jsf,Annotations,Jetty,我有一个JSF应用程序在嵌入式jetty上运行。当我从eclipse运行它时,它可以工作,但不能从命令行运行。我意识到这是因为eclipse使用文件夹,而cli使用jar。在谷歌搜索之后,我认为这是因为我的jar缺少一个faces-config.xml。我在META-INF文件夹中添加了一个,但是我的xhtml中的bean仍然存在无法到达目标的错误 我如何检查JSF实际上正在扫描我的jar以查找@ManagedBean 另外,我使用maven构建项目的jar,将其复制到我的lib文件夹,然后使用

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

我如何检查JSF实际上正在扫描我的jar以查找@ManagedBean

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

调试注释配置后,我可以看到Jetty只扫描WEB-INF下的jar

幸运的是,它们提供了一种添加外部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);

你为什么不把它放在WEB-INF/lib中?我没有,它是嵌入的。嵌入并不意味着你不能有这些。。。您可以而且应该这样做,因为它可以防止许多其他可能的问题。有关提示,请参阅。谢谢您的提示。那么,你是说我应该将jar中的目录设置为基本资源?