我把完整的异常信息贴出来吧。 2008-05-05 02:21:45 StandardContext[/BookByLiufeng]Initializing WebApplicationContext for Struts ActionServlet 'action', module '' 2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: init: Associated with Deployer 'localhost' 2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: init: Global resources are available 2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: list: Listing contexts for virtual host 'localhost' 2008-05-05 02:22:23 ApplicationDispatcher[/BookByLiufeng] Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.shop.mainshop_jsp._jspService(mainshop_jsp.java:130) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) 报错信息来源于MYECLIPSE里的日志文件
public SpringByFriend(){ ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); }
public static SpringByFriend getSpringByFriend(){ if(sbf == null){ sbf = new SpringByFriend(); }
return sbf; }
public BookDAO getBookDAOBean(){ return (BookDAO)ctx.getBean("bookDAO"); }
public Book getBookBean(){ Book book = (Book)ctx.getBean("book"); book.setBookName("liufeng"); return book; }
public static void main(String args[]){ Book book = SpringByFriend.getSpringByFriend().getBookBean(); System.out.print(book.getBookName()); } } 今后JSP里面如果不需要用到STRUTS的话,可以这样直接调用SPRING来读BEAN,也不需要在WEB.XML里配置了。感谢关心我的朋友们。结贴,分分数。
错误有2种1 你的 ctx 被没有拿到,为null
2 getBean内部没有拿到需要的资源希望你能把异常贴上来,大家看看!<ref local="bookDAO"/> 很可能是 bookDAO 没有正确初始化造成的!
2008-05-05 02:21:45 StandardContext[/BookByLiufeng]Initializing WebApplicationContext for Struts ActionServlet 'action', module ''
2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: init: Associated with Deployer 'localhost'
2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: init: Global resources are available
2008-05-05 02:22:07 StandardContext[/manager]HTMLManager: list: Listing contexts for virtual host 'localhost'
2008-05-05 02:22:23 ApplicationDispatcher[/BookByLiufeng] Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.shop.mainshop_jsp._jspService(mainshop_jsp.java:130)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
报错信息来源于MYECLIPSE里的日志文件
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.liufeng.bean.book.Book;
import com.liufeng.bean.book.BookDAO;public class SpringByFriend {
private ApplicationContext ctx = null;
private static SpringByFriend sbf = null;
public SpringByFriend(){
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
public static SpringByFriend getSpringByFriend(){
if(sbf == null){
sbf = new SpringByFriend();
}
return sbf;
}
public BookDAO getBookDAOBean(){
return (BookDAO)ctx.getBean("bookDAO");
}
public Book getBookBean(){
Book book = (Book)ctx.getBean("book");
book.setBookName("liufeng");
return book;
}
public static void main(String args[]){
Book book = SpringByFriend.getSpringByFriend().getBookBean();
System.out.print(book.getBookName());
}
} 今后JSP里面如果不需要用到STRUTS的话,可以这样直接调用SPRING来读BEAN,也不需要在WEB.XML里配置了。感谢关心我的朋友们。结贴,分分数。