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