关于Servlet里注入EJB问题

问题描述

在这个servlet里使用@EJB(mappedName="logintest")LoginTestRemotelt=null;来调用EJB,Weblogice服务器显示出现空指针异常。而我在这个servlet里从JNDI树中获取远程接口对象就运行正常,请各位大哥大姐帮帮忙,倒底怎么回来,老师也调了好半天,也没有弄好。---------------------------------------------------------------代码如下:----------------------------------------------------------------packageLoginControl;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Hashtable;importjava.util.List;importjava.util.Map;importjavax.ejb.EJB;importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importLoginModel.*;publicclassLoginManagementextendsHttpServlet{//@EJB(mappedName="logintest")//LoginTestRemotelt=null;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Hashtableht=newHashtable();ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");ht.put(Context.PROVIDER_URL,"t3://localhost:7001");Contextctx;try{ctx=newInitialContext(ht);LoginTestRemotelt=(LoginTestRemote)ctx.lookup("logintest#LoginModel.LoginTestRemote");request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");RequestDispatcherrd=null;Stringuserid=request.getParameter("userid");Stringuserpass=request.getParameter("userpass");Stringforward=null;HttpSessionsession=request.getSession();Mapm=lt.Result(userid,userpass);//注意如果是使用依赖注入就是这里跳出空指针异常,从JNDI得到对象运行正常try{if(!m.isEmpty()){if(userid.equals("admi")){forward="./LoginManagements/Manager.jsp";}elseforward="./LoginManagements/Sucess.jsp";session.setAttribute("username",m.get("username"));}}catch(Exceptione){forward="./LoginManagements/Fail.jsp";System.out.println("ok1");}rd=request.getRequestDispatcher(forward);rd.forward(request,response);}catch(Exceptione){}}}

解决方案

解决方案二:
在slevlet里不能真接注入EJB,可以真接从jndi中获取

时间: 2024-08-29 05:32:38

关于Servlet里注入EJB问题的相关文章

servlet debug 断点-Servlet里设置断点后用debug怎么进去不断点啊 急救哪

问题描述 Servlet里设置断点后用debug怎么进去不断点啊 急救哪 我用httppost和httpclient向servlet发送请求,在servlet里加了断点 可是debug调试进不去 - - 解决方案 你debug启动,看看你打的断点有没有一个小小的对号√,有的话就说明走这个断点了,没有说明没走这个断点 解决方案二: 遇到这种问题可能会有一下几种情况: 1>没有指定Debug工程.点击Link Souce指定到对应的工程即可. 2>class文件与代码不同步.清空工程.重新编译工程

JAVA CDI 学习(5) - 如何向RESTFul Service中注入EJB实例

RESTFul Service中如果要注入EJB实例,常规的@Inject将不起作用,在Jboss中,应用甚至都启动不起来(因为@Inject注入失败),解决方法很简单:将@Inject换成@EJB 参考代码: CityInvoker是一个Stateless的EJB package test; import javax.ejb.Stateless; import ... @Stateless public class CityInvoker { public CityResponse getCi

用window.location.href为什么跳转不到servlet里??

问题描述 用window.location.href为什么跳转不到servlet里?? 删除 function empDelete(){ var obj = document.getElementsByName("del_flag"); var arr = new Array (); var obj = document.getElementsByName("del_flag"); for (var i = 0;i<obj.length;i++) { if (

date类型的字段在servlet里 如何正确转换

问题描述 date类型的字段在servlet里 如何正确转换 java.lang.NullPointerException java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235) java.text.DateFormat.parse(DateFormat.java:335)www.bttc.manager.case_historyservlet.AddCase_History.doPost(AddCase_History.java

WAS6 升级到WAS7后,servlet 里的exception处理发生了异常

问题描述 publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{try{DoTask(request,response);}catch(Exceptione){Log.println(e);response.sendRedirect("GeneralErrorPage.jsp");}}代码挺简单的,不过升级后,DoTask方法里如

Myeclipse不打印Servlet里面的System.out.println,请看图片

问题描述 断点打了,在System.out.println("hhhhhhhhhhhhhhhhh");的下一行但是控制什么都不打印,只在Servlet不打印,重新写个主方法控制台会打印 解决方案 本帖最后由 o564296982 于 2014-12-15 16:18:06 编辑解决方案二:神奇的错误!!?楼主是不是选的控制台不对啊!就是右下角的那个窗口样的东西!解决方案三:头疼,试了很多方法解决方案四:引用1楼zxs6587的回复: 神奇的错误!!?楼主是不是选的控制台不对啊!就是右下

EJB技术及应用

一.EJB技术简介 EJB的全称是Enterprise java bean.是JAVA中的商业应用组件技术.EJB结构中的角色 EJB 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件.一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性.这六个角色分别是EJB组件开发者(Enterprise Bean Provider) .应用组合者(Application Assembl

Spring 3.0 注解注入详解

原文地址: http://developer.51cto.com/art/201104/255395.htm 一.各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource) @Autowired可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作.@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性.要使@Autowired能够工作,还需要在配置文件中加入以下 Xml代码 <bean class="org.sp

tomcat-spring和servlet的区别

问题描述 spring和servlet的区别 部署好项目后为什么 修改servlet里的内容不用重启tomcat 而修改spring中controller中的内容就不许重启才行啊? 解决方案 Spring+Servletstruts servlet spring区别(整理)spring管理servlet 解决方案二: 首先,个人觉得它们不具可比性.Spring是一个框架,它的核心是DI.AOP等用到了大量的代理与反射思想.你往它里面放就行.而servlet个人可以认为就是Java代码,它是web