2

我的 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

4

1 回答 1

1

仅当包含托管 bean 的 JAR 位于 WAR 的/WEB-INF/lib文件夹中时(因此当 JAR 位于 EAR 的文件夹中时不起作用/lib)并且 JAR 具有与 JSF 2.0 兼容的 JAR /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"设置属性。

于 2012-12-25T12:54:31.640 回答