【问题标题】:JSF Application Fails to start in Websphere Application Sever 7JSF 应用程序无法在 Websphere Application Server 7 中启动
【发布时间】:2012-06-18 15:39:18
【问题描述】:

我在 WAS 控制台中启动我的应用程序时遇到问题。该应用程序是一个简单的 Hello World JSF servlet。

我正在使用 Websphere Application Server 版本 7.0.0.9。

带有 facelets 1.1.14 的 JSF 1.2

当我尝试启动应用程序时,我在日志中收到以下错误。知道如何解决这个问题吗?

[15/06/12 15:13:49:747 BST] 00000045 config        I   Initializing Sun's JavaServer Faces implementation (1.2_07-b03-FCS) for context '/JsfServletDeployTest'
[15/06/12 15:13:49:756 BST] 00000045 webapp        E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated SRVE0283E: Exception caught while initializing context: {0}
                                 java.lang.NoClassDefFoundError: com.sun.faces.config.DbfFactory (initialization failure)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
    at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:276)
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:202)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:175)
    at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1678)

下面的异常:

[15/06/12 15:13:49:771 BST] 00000045 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0100E: Uncaught init() exception created by servlet Faces Servlet in application JsfServletDeployTest_war: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
    at com.ibm.ws.cache.servlet.ServletWrapper.init(ServletWrapper.java:238)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)

【问题讨论】:

  • "(initialization failure)" 位意味着应该有一个"Caused by" 异常是真正的问题。请找到并将其包含在您的问题中。如果由于某种原因它不存在,请在日志中搜索“DbgFactory.”。
  • 可能重复question

标签: jsf websphere jsf-1.2 websphere-7


【解决方案1】:

我也遇到了同样的问题,我想我也得到了答案......

似乎当您的服务器已经在 WPS 7.0 上没有 JSF(1.2) 应用程序的情况下启动时,它不会在类加载器中加载 SUN-JSF 类。

因此,如果您只是使用 JSF 1.2 部署 portlet 应用程序,它将无法开始工作并且无法找到类,因为该类应该由服务器引导程序加载。

现在,当您部署了该应用程序并重新启动服务器时,它会在初始化 JSF1.2 应用程序时加载所需的 SUN-JSF 库。因此,当您单击 portlet 时,它会加载 portlet。

所以,基本上您需要在部署 portlet 后重新启动服务器。但这应该只适用于第一个 JSF 1.2 应用程序。

希望这会有所帮助。

//血量

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,调试后发现类路径中缺少“myfaces-api.jar”和“myfaces-impl.jar”。包括它们后,应用程序正常启动,没有任何错误。检查它是否适用于您。

    【讨论】:

    • 请注意,OP 案例中的堆栈跟踪抱怨缺少 Mojarra 类,而不是 MyFaces 类。
    • 这似乎是随机发生的。我的工作区在昨天之前工作正常,开始出现此错误。真的很烦!!
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多