使用ViewScoped时,我有一个使用ClassNotFound失败的UserService但是使用SessionScoped,我希望有人可以告诉我原因。我的应用程序将JSF2与Spring混合在一起。
我得到的错误是:
java.lang.ClassNotFoundException: com.dave.user.service.IUserService
托管bean是
@ManagedBean(name="ClientMB")
@ViewScoped
public class ClientMB implements Serializable{
@ManagedProperty(value="#{UserService}")
IUserService userService;
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
UserService定义为
public class UserService implements Serializable, IUserService {
// UserDAO is injected...
IUserDAO userDAO;
}
IUserService只是一个接口:
public interface IUserService {
ApplicationContext中的声明是
<bean id="UserService" class="com.dave.user.service.UserService">
<property name="userDAO" ref="UserDAO" />
</bean>
正如我所说,使用SessionScoped可以正常工作,但是当我将托管bean更改为ViewScoped时失败。
答案 0 :(得分:0)
问题来自于将状态保存从服务器更改为客户端。一旦我返回状态保存到服务器viewcope工作正常。不太确定为什么会发生这种情况,但同样令人尴尬。