Java-在Wicket AuthenticateWebSession中EJB3注入为空
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-在Wicket AuthenticateWebSession中EJB3注入为空,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1583字,纯文字阅读大概需要3分钟。
内容图文
![Java-在Wicket AuthenticateWebSession中EJB3注入为空](/upload/InfoBanner/zyjiaocheng/689/6c92ce87e5eb4bafabf13dd824bd79e8.jpg)
我在应用程序中使用Wicket EJB3,但遇到一个问题,但找不到任何相关的主题,因此这里是:
我正在使用Wicket身份验证,并且需要使用EJB中重写的方法authenticate(…)中的方法.
我可以在任何检票口页面中使用此EJB,但是当涉及到WebSession时,它保持为Null,则注入无法正常工作.
我的WicketSession类看起来像这样:
public class WicketSession extends AuthenticatedWebSession {
@EJB(name = "UserService")
private UserService userService;
private User user = null;
public WicketSession(Request request) {
super(request);
}
@Override
public boolean authenticate(final String login, final String password) {
user = userService.findByLoginPwd(login, password);
return user != null;;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
而我的EJB3:
@Remote
public interface UserService {
public User findByLoginPwd(final String login, final String pwd);
}
@Stateless
public class UserServiceImpl implements UserService {
public User findByLoginPwd(final String login, final String pwd) {
[...]
}
}
带有Wicket的Web部件打包在战争中,带有EJB的业务部件打包在jar中,然后我试着将其部署在JOnAS服务器上.
任何帮助将不胜感激=)
尼古拉斯
解决方法:
正如肖恩·帕特里克·弗洛伊德(Sean Patrick Floyd)所述,会话不是组件,因此为Wicket组件提供的自动注入不适用.
在非组件中注入内容的常见习惯是添加行
InjectorHolder.getInjector().inject(this);
到构造函数.
我没有将其用于WicketSession扩展,但是我不知道它无法正常工作的原因.
在JavaEEComponentInjector中,inject方法几乎可以肯定是在执行JNDI查找,您可以自己进行JNDI查找来获取对象,但这是在重用现有的注入,并且如果您决定更改注入器(例如通过扩展JavaEEComponentInjector),它确保您将继续使用相同的注射.
内容总结
以上是互联网集市为您收集整理的Java-在Wicket AuthenticateWebSession中EJB3注入为空全部内容,希望文章能够帮你解决Java-在Wicket AuthenticateWebSession中EJB3注入为空所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。