0

在 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)
4

2 回答 2

1

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

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

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

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

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

希望这可以帮助。

//生命值

于 2012-11-12T11:06:08.437 回答
0

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

于 2012-06-21T22:47:19.043 回答