2013-04-15 2 views
1

Я пытаюсь ввести @Named инъекцию для связанной строки в ServeContextListener, однако я всегда получаю, что String не является связанным исключением. Таким образом, я предполагаю, что ServeContextListener не удар вGuice ServeContextListener не вводит

Это мой web.xml конфигурации:.

<!-- GAE-Shiro --> 

<context-param> 
    <param-name>user-base-url</param-name> 
    <param-value>/user/admin</param-value> 
</context-param> 

<context-param> 
    <param-name>static-base-url</param-name> 
    <param-value></param-value> 
</context-param> 

<filter> 
    <filter-name>guiceFilter</filter-name> 
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>guiceFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
</filter-mapping> 

<listener> 
    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> 
</listener> 

<listener> 
    <listener-class>org.jboss.errai.ui.demo.server.guice.ServeContextListener</listener-class> 
</listener> 

<mime-mapping> 
    <extension>manifest</extension> 
    <mime-type>text/cache-manifest</mime-type> 
</mime-mapping> 

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 

<!-- JBoss Resteasy --> 

<context-param> 
    <param-name>resteasy.guice.modules</param-name> 
    <param-value>org.jboss.errai.ui.demo.server.guice.ServeModule</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener 
    </listener-class> 
</listener> 

<context-param> 
    <param-name>resteasy.servlet.mapping.prefix</param-name> 
    <param-value>/</param-value> 
</context-param> 

<servlet> 
    <servlet-name>Resteasy</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Resteasy</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Фактическое связывание в ServeLogic:

@Override 
protected Injector getInjector() { 
    return Guice.createInjector(new ServeLogic(userBaseUrl, staticBaseUrl), new ServeModule(userBaseUrl)); 
} 

только те, которые связаны с :

org.jboss.errai.ui.demo.server.guice.ServeModule 

Почему?

+0

Было бы полезно, если бы вы выложили фактической StackTrace. Я снял web.xml и выглядел правильно. – ilikeorangutans

+0

@ilikeorangutans Я решил эту проблему, пожалуйста, см. Мой ответ – xybrek

ответ

0

Я решил эту isssue по:

  • Расширение GuiceResteasyBootstrapServletContextListener и объединить ServeContextListener к нему.
  • Таким образом, приложение только один контекст Слушатель, который GuiceResteasyBootstrapServletContextListener

Таким образом, у меня есть только этот приемник:

<listener> 
    <listener-class> 
     org.jboss.errai.ui.demo.server.guice.CustomGuiceResteasyBootstrapServletContextListener 
    </listener-class> 
</listener> 
+0

Здравствуйте, xybrek, можете добавить к правилу ответа web.xml. Спасибо. – Mark

Смежные вопросы