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
如何将war文件中的JSF页面连接到企业应用程序中jar文件中的托管bean_Jsf_Netbeans - Fatal编程技术网

如何将war文件中的JSF页面连接到企业应用程序中jar文件中的托管bean

如何将war文件中的JSF页面连接到企业应用程序中jar文件中的托管bean,jsf,netbeans,Jsf,Netbeans,我的JSF Java企业应用程序无法访问支持bean;正在发送错误消息- /master/currency/addCurrency.xhtml@19,94 value=“#{addCurrencyController.code}”:无法访问目标,标识符“addCurrencyController”解析为空 我已经扫描了前面的问题,解决方案(问题#7663818)是在jar文件的META-INF文件夹中有一个空白的faces-config.xml。在这种情况下,jar文件是war文件的一部分。我无

我的JSF Java企业应用程序无法访问支持bean;正在发送错误消息-

/master/currency/addCurrency.xhtml@19,94 value=“#{addCurrencyController.code}”:无法访问目标,标识符“addCurrencyController”解析为空

我已经扫描了前面的问题,解决方案(问题#7663818)是在jar文件的META-INF文件夹中有一个空白的faces-config.xml。在这种情况下,jar文件是war文件的一部分。我无法让它工作,因为我的xhtml处于战争状态,AddCurrencyController请求范围的托管bean在jar中,并且两者都打包在ear中

My 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>

ruwi应用程序
ruwi-web-1.0.war
/鲁威
ruwi-ejb-1.0.jar
解放党
我使用的是Netbeans 7.3 Beta 2 IDE,服务器是捆绑的GlassFish

谢谢


--MH

只有当包含托管bean的JAR位于WAR的
/WEB-INF/lib
文件夹中(因此当JAR位于EAR的
/lib
!)并且JAR具有与JSF2.0兼容的
/META-INF/faces config.xml
(因此不是空的!)时,它才起作用



您还应该确保您的webapp的
/WEB-INF/faces config.xml
没有
metadata complete=“true”
属性集。

托管bean是在ejb jar中,还是在ear的/lib目录中的jar中?Mike-托管bean在ejb jar中。我认为这是您的问题。EJB归档文件不应包含对web构件的任何引用。这几乎就是这些层背后的全部想法。如果出于某种原因,您需要支持bean中的EJB服务,请将其拉入war。不要将支持bean推入EJB jar.BalusC中——我的控制器基本上是一个托管(支持)bean,它是一个EJB。如果在NetBeans中将应用程序配置为Web应用程序,我就能够运行它。从纯J(2)EE的角度来看,我不希望EJB成为我war文件的一部分。因此,我尝试将我的应用程序配置为NetBeans中的企业应用程序。有没有一种解决方案可以让托管bean留在ejbjar项目中?“作为ejb的托管bean”毫无意义。那里有一些严重的设计错误。EJB项目不应该包含任何JSF工件。换句话说,在EJB项目中不应该有任何
javax.faces.*
导入。
<?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>