我正在使用基于 Hibernate 数据库的登录系统开发我的第一个 Tapestry 应用程序。
在一个带有会话对象的页面上,我想调用我的Authenticator
服务类,它也会注入会话并做一些事情。我的问题是,我无法运行任何服务,这非常令人沮丧,尽管我遵循了这样的简单指南:http ://code.google.com/p/shams/wiki/Service
在我的services
包中,我得到了Authenticator.java
andAuthenticatorImpl.java
接口和实现的类。在AppModule
课堂上,我打电话
binder.bind(Authenticator.class, AuthenticatorImpl.class);
在我的页面“ShowAllUsers”中,我注入了我的 Authenticator 服务对象:
...
public class ShowAllUsers{
@Inject
private Session session;
@Inject
private Authenticator authenticator;
...
}
但是当我在我的服务器上加载页面时,我收到以下错误:
org.apache.tapestry5.ioc.internal.OperationException
Error obtaining injected value for field de.webtech2.pages.user.ShowAllUsers.authenticator: No service implements the interface de.webtech2.services.Authenticator.
trace:
- Creating instantiator for component class de.webtech2.pages.user.ShowAllUsers
- Running component class transformations on de.webtech2.pages.user.ShowAllUsers
- Injecting field de.webtech2.pages.user.ShowAllUsers.authenticator
但是我的 AppModule 确实成功地将类绑定到接口。在 Maven 构建控制台中,我可以阅读“Authenticator:DEFINED”,如果我尝试将它绑定到另一个模块中,它会抱怨,因为它已经绑定在 AppMopule 中。
为什么挂毯看不到实现?我究竟做错了什么?