【问题标题】:Spring - Hibernate errorSpring - 休眠错误
【发布时间】:2014-03-07 23:55:16
【问题描述】:

我有一个连接到 MySQL 数据库的 Web 应用程序。

此应用程序实现了 Spring 和 Hibernate 框架,它具有以下架构:

在文件 getGraph.jsp 我有这个代码:

<%@page import="org.springframework.beans.factory.annotation.Autowired"%>
<%@page import="com.google.gson.*"%>
<%@page import="com.fdl.entity.*"%>
<%@page import="com.fdl.dao.*"%>
<%@page import="java.io.PrintWriter"%>
<%@page import="org.springframework.context.support.ClassPathXmlApplicationContext" %>
<%@page import="org.springframework.context.ApplicationContext" %>

   <%
    response.setContentType("application/json;charset=UTF-8");
    Gson gson = new Gson();
    ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
    FdlDao fdlDao=(FdlDao) context.getBean("fdlDao");
    Graph graph = fdlDao.getGraph2();
    out.print(gson.toJson(graph));
   %>

但是当我运行代码时,我得到了这个错误:

7 mars 2014 23:27:54 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@15b4b49: startup date [Fri Mar 07 23:27:54 WET 2014]; root of context hierarchy
7 mars 2014 23:27:54 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
7 mars 2014 23:27:54 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [jsp] in context with path [/FDL] threw exception [An exception occurred processing JSP page /getGraph.jsp at line 14

11: 
12:     response.setContentType("application/json;charset=UTF-8");
13:     Gson gson = new Gson();
14:     ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
15:     FdlDao fdlDao=(FdlDao) context.getBean("fdlDao");
16:     Graph graph = fdlDao.getGraph2();
17:     out.print(gson.toJson(graph));


Stacktrace:] with root cause
java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.apache.jsp.getGraph_jsp._jspService(getGraph_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)

有什么问题?我该如何解决?

【问题讨论】:

  • 春天有文字?

标签: java spring hibernate jakarta-ee


【解决方案1】:

消息解释它:

类路径资源[applicationContext.xml]不存在,无法打开

webapp 的类路径由 WEB-INF/classes 文件夹和 WEB-INF/lib 下的所有 jar 组成。 applicationContext.xml 在 WEB-INF 下,所以不在类路径中。

请注意,这不是您应该使用 Spring 的方式:

  • 不应使用小脚本
  • 不应从 JSP 调用 s DAO,这是一个只应生成 HTML 的视图组件。调用 DAO 是控制器的工作,用 Java 编写
  • JSP 是视图组件,不应直接访问。始终通过控制器。
  • 在每个请求中创建一个新的 Spring 上下文是非常昂贵的。应在部署应用程序时一劳永逸地启动上下文。

在 Spring 文档中描述了在 webapp 中使用 Spring 的方式。阅读它,并按照文档说明使用 Spring MVC。

【讨论】:

    猜你喜欢
    • 2018-11-08
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2014-07-14
    相关资源
    最近更新 更多