不知你的有没有找到applicationContext.xml这个SPRING配置文件,可能没有加载SRPING的配置文件

解决方案 »

  1.   

    请教一下,如何加载applicationContext.xml文件,是在web.xml里面吗?还是在JSP里面怎么写代码啊?
      

  2.   

    一般都写在web.xml里面去加载就好了
      

  3.   

    BookListService allBookBean = (BookListService)ctx.getBean("bookListService"); 
    错误有2种1 你的 ctx 被没有拿到,为null
    2 getBean内部没有拿到需要的资源希望你能把异常贴上来,大家看看!<ref local="bookDAO"/> 很可能是 bookDAO 没有正确初始化造成的!
      

  4.   

    贴完整异常信息吧还有界面(jsp)上调用spring 不推荐啊
      

  5.   

    我把完整的异常信息贴出来吧。
        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里的日志文件
      

  6.   

    我搞定了,我写了个单态,把源代码给大家看。呵呵,很简单的, 我搞了好久哦。package com.SpringIOCbyLiufeng;import org.springframework.context.ApplicationContext;
    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里配置了。感谢关心我的朋友们。结贴,分分数。