Application was not properly initialized at startu

 

java代码如下

 

import java.util.HashMap;

import java.util.Map;

 

import javax.faces.webapp.FacesServlet;

 

import org.mortbay.jetty.Connector;

import org.mortbay.jetty.Server;

import org.mortbay.jetty.bio.SocketConnector;

import org.mortbay.jetty.servlet.Context;

import org.mortbay.jetty.servlet.DefaultServlet;

import org.mortbay.jetty.servlet.ServletHolder;

import org.springframework.web.context.ContextLoaderListener;

 

import com.sun.faces.config.ConfigureListener;

 

public class JettyStart {

 

    public static void main(String arg[]) {

 

Server server = new Server();

Connector connector = new SocketConnector();

connector.setPort(80);

server.addConnector(connector);

 

Map<String, String> initParams = new HashMap<String, String>();

initParams.put("contextConfigLocation", "/WEB-INF/web-application-config.xml");

initParams.put("javax.faces.DEFAULT_SUFFIX", ".xhtml");

initParams.put("facelets.DEVELOPMENT", "true");

initParams.put("facelets.REFRESH_PERIOD", "1");

initParams.put("com.sun.faces.expressionFactory", "org.jboss.el.ExpressionFactoryImpl");

 

ContextLoaderListener contextLoaderListener = new ContextLoaderListener();

 

ConfigureListener configureListener = new ConfigureListener();

 

 

 

Context context = new Context(server, "/jsf", Context.SESSIONS);

context.setInitParams(initParams);

context

.setResourceBase("E:/sources/spring/spring-webflow-2.0.5.RELEASE/projects/spring-webflow-samples/jsf-booking/src/main/webapp");

 

context.addEventListener(contextLoaderListener);

        

        //没有这个监听的话 就会报错Application was not properly initialized at startu

        context.addEventListener(configureListener);

 

ServletHolder holder = new ServletHolder(new FacesServlet());

context.addServlet(holder, "*.faces");

 

holder = new ServletHolder(new DefaultServlet());

context.addServlet(holder, "*.html");

 

try {

   server.start();

   server.join();

} catch (Exception e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

}

 

    }

 

}


以上ConfigureListener configureListener = new ConfigureListener();这个监听是必须的,ConfigureListener 是jboss和spring对jsf的一个实现,在myface中实现为StartupServletContextListener这个类。

   如果不使用jetty手动加载的话,在web.xml中定义为

 

    <listener>

        <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>

    </listener>

 

 

 

 

在没有添加ConfigureListener 监听的时候就会报下面的错误:

2009-05-05 23:28:37.062:/jsf:WARN:  unavailable

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory

at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:725)

at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:239)

at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)

at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:431)

at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)

at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:667)

at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)

at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.Server.doStart(Server.java:222)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)

at JettyStart.main(JettyStart.java:53)

2009-05-05 23:28:37.078::INFO:  Started SocketConnector@0.0.0.0:80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值