Есть ли способ установить контекстные параметры программно во встроенном причале? - PullRequest
8 голосов
/ 17 марта 2012

Рассматривая следующий пример встроенного примера Jetty: http://musingsofaprogrammingaddict.blogspot.com.au/2009/12/running-jsf-2-on-embedded-jetty.html

Ниже приведен пример кода (ниже.

Далее автор приводит пример ссылки на контекстные параметры в файле web.xml. например,

...
<context-param>
  <param-name>com.sun.faces.expressionFactory</param-name>
  <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
...

У меня вопрос: если я хочу сделать все в классе Java, есть ли способ установить контекстные параметры программно?

public class JettyRunner {

    public static void main(String[] args) throws Exception {

        Server server = new Server();

        Connector connector = new SelectChannelConnector();
        connector.setPort(8080);
        connector.setHost("127.0.0.1");
        server.addConnector(connector);

        WebAppContext wac = new AliasEnhancedWebAppContext();
        wac.setContextPath("/myapp");
        wac.setBaseResource(
            new ResourceCollection(
                new String[] {"./src/main/webapp", "./target"}));
        wac.setResourceAlias("/WEB-INF/classes/", "/classes/");

        server.setHandler(wac);
        server.setStopAtShutdown(true);
        server.start();
        server.join();
    }
}

Ответы [ 2 ]

9 голосов
/ 08 октября 2012

В вашем случае

wac.setInitParameter("com.sun.faces.expressionFactory",
                     "com.sun.el.ExpressionFactoryImpl")

подойдет.

0 голосов
/ 21 марта 2017
    ServletContextHandler context = new ServletContextHandler(
            ServletContextHandler.SESSIONS);
    context.setContextPath("/");

код выше должен работать для вас.

...