Myeclipse 6.5 整合SSH(三)

现在,关于“客户信息维护”的SSH框架已经结束,涉及到的后端操作包括增、删、查、改、生成Excel表格等。现在主要说说在创建过程中我经常遇到其中的几个问题。

问题一: 

出现

严重:Exception sending context initialized event to listenerinstance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Errorcreating bean with name ‘entityManagerFactory‘ defined inServletContext resource [/WEB-INF/classes/applicationContext.xml]:Invocation of init method failed; nested exception isjava.lang.ExceptionInInitializerError
Caused by: java.lang.ExceptionInInitializerError  

或者

Error Creating SessionFactory java.lang.SecurityException: class"org.apache.commons.collections.SequencedHashMap

以上两个报错,是由于Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar即可

问题二:

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 15 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid;nested exception is org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 3; The markup in the document following the root element must be well-formed.

启动服务,出现以上报错 ,网上搜了一下,主要原因有:

1、复制粘贴时,可能粘贴进去乱码了。需要手动输入。

2、在applicationContext.xml文件中,开头有空格,导致识别不了文件。即要确保xml的第一句<?xml version="1.0" encoding="UTF-8"?>之前没有空格。

3、配置文件声明中缺少context。

4、在配置spring的配置文件时,抛出nested exception is org.xml.sax.SAXParseException; lineNumber: 15; columnNumber的异常,原因就是没有正确的添加命名空间。

5、在xml中这样引用 properties文件的:<import resource="classpath:application.properties"/>

改成  <context:property-placeholder location="classpath:application.properties" />就好了

6、元素 ‘property‘ 必须不含字符 [子级], 因为该类型的内容类型为“仅元素”。

可以将

<property name="url">${hibernate.connection.url}</property>  

改为

<property name="url">${hibernate.connection.url}/>

7、开头缺少<web-app>,即XML文档中标记的地方格式不合法,通不过dtd的验证,所以要符合规范,在xml文件的开头加上

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>  

 问题三:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml]

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml]

出现如上错误,查了下,网上说的错误原因基本都是:发生在web.xml的配置有问题,要加上如下代码如下:

在web.xml文件中加入:

 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/config/applicationContext.xml</param-value>
 </context-param>  

或者

<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</init-param>  

问题的原因主要是:问题主要由于加载spring的默认配置文件位置一般是在/WEB-INF/下找applicationContext.xml文件,eclipse文件自动生成的applicationContext文件是放在/WEB-INF/classes/applicationContext.xml,所以在默认加载中是找不到applicationContext.xml文件的,必须加入上面配置。

无论加了哪种,我的加上以后又报下面的错:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml]

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/classes/applicationContext.xml]

1、查到的问题及解决办法有的跟上面的相同,即在web.xml中加入这些配置

<context-param>
    <param-name>contextConfigLocation </param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml </param-value>
</context-param>

或者将IDE自动生成的applicationContext.xml放到WEB-INF 文件夹下即可。

2、可能是你的applicationContext.xml没有正确引入外部数据源

例如:<!-- 引入数据源 -->
   <context:property-placeholder location="classpath:db.properties"/>

问题四:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactory‘ defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

这个错误我遇到好几次,网上找了好多方法来试,都没成功。

最后,将bean下的Cust.hbm.xml文件中的

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">   

改为

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

这样就可以了。

时间: 2024-11-08 19:09:52

Myeclipse 6.5 整合SSH(三)的相关文章

Myeclipse 6.5 整合SSH(一)

Myeclipse 6.5 整合SSH(一) 最近小学期正在学习基于Myeclipse 的SSH整合,期间出现了各种各样的问题.问题太多,后面会整理后陆续另开博文写.因为发现老师教我们的过程与网上的有所不同,所以这里主要介绍MyEclipse的初始设置过程. 实验环境 MyEclipse 6.5 Tomcat 6.0 绿色版 Navicat Premium mysql-5.1.49-win32 环境安装的配置过程略. 1. 新建工程 打开MyEclipse,单击File –>New –> We

Myeclipse 6.5 整合SSH(二)

SSH构架的配置 上次已经说了工程的创建,这次说说为工程添加配置的过程. 一.数据库-配置数据连接池 2. 在applicationContext.xml文件中添加配置文件: <!--数据库-配置数据连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"

使用MyEclipse整合ssh(Struts、Spring、Hibernate)三大框架(环境搭载+实例源码下载)

前言 SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

【j2ee spring】12、整合SSH框架(终结版)

[j2ee spring]12.整合SSH框架(终结版) 最后,我们把整个项目的截图,代码发一下,大家不想下载那个项目的话,可以在这里看到所有的代码(因为那个项目需要一个下载积分,真不多= =,我觉得我搞了那么久,收点积分应该不过分吧...嘿嘿) 这里,我尽量用截图来搞,免得复制粘贴,怪烦的 一.项目整体截图 二.开始全部代码 Person.java Person.hbm.xml PersonService.java package cn.cutter_point.service; import

使用eclipse整合ssh项目的例子--lljf(1)

最近向自己单独做一个基于ssh的项目,来预习和巩固自己的Java基础.找了一个实际生活中的定做衣服的例子来做一做,放到博客上给大家一起分享学习,后边会持续更新项目编写时候遇到的困难和使用的技术等. 1.点击新建-->选择Dynamic Web Project -->next-->next..并创建package结果图: 2.创建自己的架包库并导入架包到项目: 平时开发需要使用外部的jar时直接将其拷入WEB-INF/lib下.这个是可以的,但是分类一下会让系统更有条理.eclipse中分

Struts2,Spring3,Hibernate4整合--SSH框架

Struts2,Spring3,Hibernate4整合--SSH框架(学习中) 一.包的导入 1.Spring包 2.Hibernate 包 3.struts 包 4.数据库方面的包及junt4的包 二.配置文件 1.beans.xml (具体要注意的已经注释到 xml 中了,目前整合了Spring 与 hibernate4 ) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h

整合SSH遇到的错误

错误一: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring.xml]; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor 解决办法

.net到Java那些事儿--整合SSH

一.介绍       整体介绍分成两个部分,第一.net转到Java的原因,第二开发SSH时候的环境介绍:       .net到Java的原因: .net开发也将近快3年的样子,加上现在的老东家换过的公司也有4家了,中间的心酸故事我也不想说,我就说下中间遇到一些事和我想做的一些事,这些可能促使我进行了转行,当然中间也犹犹豫豫过,比如Core的到来.还有Xamarin这些东西的涌入使我坚持将近一年的样子,但是在6月份的时候我还是下定决心,先后购入Java核心卷.Spring实战.JVM虚拟机.J

【j2ee spring】10、整合SSH框架(3)

整合SSH框架(3) Spring4+hibernate4+Struts2的整合,整合完成后我会把这个项目上传上去,但是我的建议是最好还是自己在自己的电脑上自己整合一下,我不保证一定没问题 前面那个,我们已经基本整合了SSH框架,但是还是有一些小小的瑕疵, 比如:PersonAction.java里面的 //获取实例,方法1 ServletContext sc = ServletActionContext.getRequest().getSession().getServletContext()