【发布时间】:2017-02-24 14:59:21
【问题描述】:
我有一个 Wicket Session 类如下
public class IASession extends AuthenticatedWebSession {
private static final long serialVersionUID = 3529263965780210677L;
@SpringBean
private UserService userService;
public IASession(Request request) {
super(request);
}
@Override
public boolean authenticate(String username, String password) {
// Get the user
UserDetailsDTO user = userService.findByEmail(username);
if(null != user && user.getPassword().equals(password))
return true;
else
return false;
}
@Override
public Roles getRoles() {
Roles roles = new Roles();
roles.add("SIGNED_IN");
return roles;
}
}
在本课程中,我正在尝试使用 wicket-spring 注释 @SpringBean 自动装配 Spring 服务。但是当我尝试登录时,它给了我错误。
Last cause: null
WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [StatelessForm [Component id = login-form]] on component [StatelessForm [Component id = login-form]] threw an exception
Wicket 无法自动装配 userService spring bean,这就是为什么它是 null。
我能做些什么来解决这个问题?
【问题讨论】:
-
我以前没有使用过 Wicket,但是 IASession 在 Spring 应用程序上下文中是否可见?我没有在此类上看到任何表明它是的注释。如果你的目标类不是由 Spring 管理的,你就不能在其中自动装配任何东西。另外,你的UserService是不是也被Spring管理了?