2015-06-05 2 views
0

Я использую WebAppContext в качестве обработчика в внедренного причалу:Jetty начинается с java.lang.IllegalArgumentException: Ресурс не должен быть пустым

Server server = setupServerOfTwoConnectors(); 
server.setHandler(webAppContext()); 

server.start(); 

И webAppContext() является:

private static WebAppContext webAppContext() { 
    WebAppContext context = new WebAppContext(); 
    context.setContextPath("/foo"); 
    context.setWar("bar.war"); 

    return context; 
} 

Do I пропустить что-нибудь здесь? версия Причал является 9.2.10.v20150310

Это исключение при запуске:

2015-06-05 10:57:45,015 [main] ERROR - [ContextLoader:331] Context initialization failed 
java.lang.IllegalArgumentException: Resource must not be null 
    at org.springframework.util.Assert.notNull(Assert.java:112) 
    at org.springframework.core.io.support.EncodedResource.<init>(EncodedResource.java:66) 
    at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175) 
    at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156) 
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:80) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:162) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800) 
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444) 
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294) 
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) 
    at org.eclipse.jetty.server.Server.start(Server.java:387) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:354) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at my.code.JettySanityTest.setupJetty(JettySanityTest.java:56) 
+1

После некоторой отладки, я нашел корень причина недостающее '-D' конфигурации в VM аргументов –

ответ

0

Не зная, что нуждается в вашей войне файл из конфигурации Jetty, я буду просто принимать удар в темноте с этим ответом , (Настроить соответствующим образом)

Вы хотите объявить о некоторых настройках конфигурации для этого webapp.

Например:

context.setConfigurations(new Configuration[] 
    { 
     new AnnotationConfiguration(), 
     new WebInfConfiguration(), 
     new WebXmlConfiguration(), 
     new MetaInfConfiguration(), 
     new FragmentConfiguration(), 
     new EnvConfiguration(), 
     new PlusConfiguration(), 
     new JettyWebXmlConfiguration() 
    }); 

Обратите внимание, что порядок их важен, и любой из них можно считать необязательными.

  • AnnotationConfiguration - настроить веб-приложение с аннотациями, присутствующих в байткод
  • WebInfConfiguration(по умолчанию включено) - настроить веб-приложение на основе информации в WEB-INF каталогов (основной веб-приложение и LIBS)
  • WebXmlConfiguration(обеспечиваемых по умолчанию) - настроить метаданные webapp из информации, имеющейся в WEB-INF/web.xml (только с основного webapp)
  • MetaInfConfiguration(по умолчанию включено) - настроить веб-приложение на основе информации в META-INF каталогов (основной веб-приложение и LIBS)
  • FragmentConfiguration(по умолчанию включено) - настройка WebAPP метаданных из информации присутствует в Lib фрагментов
  • EnvConfiguration - установка на JNDI окр для веба-приложения
  • PlusConfiguration - установить переменные JNDI/связывания на основе информации, собранной в метаданных из вышеуказанных конфигураций
  • JettyWebXmlConfiguration(по умолчанию включено) - конф е WebApp из WEB-INF/jetty-web.xml (с использованием языка XML IoC Jetty в) главного WebAPP в
+0

спасибо, что нашли время, чтобы ответить на этот вопрос. коренная причина моей проблемы найдена (см. комментарий в вопросе) –