首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Guice创建异常

Guice创建异常
EN

Stack Overflow用户
提问于 2009-11-19 22:32:58
回答 1查看 9.5K关注 0票数 1

我试图让Guice使用Struts、Hibernate和Quartz调度器。当我在Tomcat下部署我的应用程序时,我会得到以下错误-

代码语言:javascript
复制
Nov 19, 2009 2:11:26 PM com.google.inject.struts2.GuiceObjectFactory buildBean
INFO: Creating injector...
com.google.inject.CreationException: Guice configuration errors:

1) Error at com.sample.common.entity.PersistenceServiceImpl.scheduler(PersistenceServiceImpl.java:22):
  Error while injecting at com.sample.cacher.UiAction.persistenceService(UiAction.java:27): Error while   injecting at com.sample.cacher.UiAction.persistenceService(UiAction.java:27): Binding to    org.quartz.Scheduler not found. No bindings to that type were found.

2) Error at com.sample.common.entity.PersistenceServiceImpl.session(PersistenceServiceImpl.java:22):
  Error while injecting at com.sample.cacher.UiAction.persistenceService(UiAction.java:27): Error while injecting at com.sample.cacher.UiAction.persistenceService(UiAction.java:27): Binding to org.hibernate.Session not found. No bindings to that type were found.

2 error[s]
    at com.google.inject.BinderImpl.createInjector(BinderImpl.java:277)
    at com.google.inject.Guice.createInjector(Guice.java:79)
    at com.google.inject.Guice.createInjector(Guice.java:53)
    at com.google.inject.Guice.createInjector(Guice.java:43)

和密码

代码语言:javascript
复制
@ImplementedBy(PersistenceServiceImpl.class)
public interface PersistenceService {
public void save(JobInformation dataObject);

public void remove(String jobName, String jobGroup, Class jobClass);

public List getActiveJobsFor(String userName, Class clazz) throws Exception;
}

public class PersistenceServiceImpl implements PersistenceService 
{  
  @Inject
   private Session session;
  @Inject
   private Scheduler scheduler;
   ...
}

package com.sample.common.entity;
public class ManagerModule extends AbstractModule {
protected void configure() {
    bind(Session.class)
            .toProvider(SessionProvider.class);
    bind(Scheduler.class)
            .toProvider(SchedulerProvider.class);
}
}

public class UiAction extends ActionSupport implements PrincipalAware
{
   @Inject
   private PersistenceService persistenceService;
   ....

    public String doSave() throws ParseException {


        persistenceService.save(data);

       return  doList();
      }
   }

和web.xml

代码语言:javascript
复制
<filter>
    <filter-name>guice</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>guice</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

有人能解释一下这个应用程序崩溃的原因吗?我从某人那里继承了这段代码,我不完全理解如何使用Guice进行注入。

我怀疑这是否与任何jars或配置问题有关?

任何帮助都是非常感谢的,

谢谢

EN

回答 1

Stack Overflow用户

发布于 2009-11-20 11:39:58

我从某人那里继承了这段代码,我不完全理解如何使用Guice进行注入。

详细信息将在Guice wiki上描述。但简单得很:

GuiceFilter拦截所有调用,并允许Guice将它们重定向到Guice注入的对象。

扩展GuiceServletContextListener的用户构建类返回正确配置的Injecter,Guice将用它创建对象。这将在XML文件中设置为侦听器。

这使用普通的Module和一个或多个ServletModule,后者允许servlet、过滤器和侦听器的基于代码的配置

如果要猜测您的问题,那么GuiceServletContextListener不包含对ManagerModule的引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1767052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档