我的JSF Java Enterprise应用程序无法访问支持bean;错误信息是-
/master/currency/addCurrency.xhtml @19,94 value="#{addCurrencyController.code}": Target Unreachable, identifier 'addCurrencyController' resolved to null
我在这里扫描了以前的问题,解决方案(问题#7663818)是在jar文件的META-INF文件夹中有一个空白的faces-config.xml。在这种情况下,jar文件是war文件的一部分。我不能使它工作,因为我的xhtml是在战争中,AddCurrencyController请求作用域的管理bean是在jar中,两者都打包在一个耳朵。
我的application.xml是Maven生成的,如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
<display-name>ruwi-app</display-name>
<module>
<web>
<web-uri>ruwi-web-1.0.war</web-uri>
<context-root>/ruwi</context-root>
</web>
</module>
<module>
<ejb>ruwi-ejb-1.0.jar</ejb>
</module>
<library-directory>lib</library-directory>
</application>
我使用Netbeans 7.3 Beta 2 IDE,服务器是捆绑的GlassFish。
感谢- MH
只有当包含托管bean的JAR在WAR的/WEB-INF/lib
文件夹中(因此当JAR在EAR的/lib
文件夹中时不工作!)并且JAR具有JSF 2.0兼容的/META-INF/faces-config.xml
(因此不是空白的!)
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
你还应该确保你的webapp的/WEB-INF/faces-config.xml
没有metadata-complete="true"
属性集。