s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题

简介:

1.新建一个web project

2.首先生成Hibernate Facet

3.Hibernate Facet 安装步骤

 

4.然后是spring facet安装步骤

 

5.最后是struts facet 的配置

 6.最后的整体布局如下所示

7.在服务器上运行,发现如下错误:

1
2
3
4
5
6
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource]
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
     ........

主要是没有在applicationContext.xml中配置 DataSource 这个bean,配置好后将其注入sessionFactory

复制代码
<!--新加入 datasource -->
      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/hjzgg_test?characterEncoding=UTF-8" />
        <property name="username" value="root" />
        <property name="password" value="hjzgg5211314" />
      </bean>
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="configLocation"
            value="classpath:hibernate.cfg.xml">
        </property>
        <!--新加入 将dataSource注入到sessionFactory中 -->
        <property name="dataSource" ref="dataSource"></property>
        
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
                hibernate.hbm2ddl.auto=update
                hibernate.show_sql=true
                hibernate.format_sql=false
                hibernate.cache.use_second_level_cache=true
                hibernate.cache.use_query_cache=false
                hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
                hibernate.current_session_context_class=thread <!-- 解决Hibernate4 No Session found for current thread -->
</value> </property>
复制代码

8.新建PersonDao(DAO层),它的实现类PersonDaoImpl,以及 Action类 LoginAction

在applicationContext.xml中添加如下代码:

    <bean id="personDao" class="com.xunchang.PersonDaoImpl">
            <!-- 采用依赖注入传入SessionFactory的引用 -->
            <property name="sessionFactory" ref="sessionFactory"/>
      </bean>
      <bean id="login" class="com.xunchang.LoginAction">       
            <property name="personDao" ref="personDao"/>
      </bean>

9.POJO 与 hibernate层:新建POJO(普通java类, 对于每一个变量拥有getter 和 setter方法),新建 映射hibernate持久化类person.cfg.xml文件如下:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping 
                PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.xunchang">
        <class name="Person" table="home402">
            <!-- 定义持久化类的表示属性 -->
            <id name="personId" column="personId" type="java.lang.Integer">
                <!-- 定义主键生成策略 -->
                <generator class="identity"/>
            </id>
            <property name="person_name" column="person_name" type="java.lang.String"/>
            <property name="person_age" column="person_age" type="java.lang.Integer"/>
        </class>
</hibernate-mapping>
复制代码

然后在applicationContext.xml中的sessionFactory(bean)中加载该映射文件如下:

复制代码
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="configLocation"
            value="classpath:hibernate.cfg.xml">
        </property>
        <!--新加入 将dataSource注入到sessionFactory中 -->
        .......
        ......
         <!--通过配置文件的方式获取数据源-->
        <property name="mappingResources">
            <list>
               <!-- 以下用来列出所有的PO映射文件 -->
               <value>person.cfg.xml</value>
            </list>
        </property>       
    </bean>
复制代码

10.运行服务器,问题又来了,如下:

1
2
3
4
5
6
7
org.hibernate.HibernateException: No Session found for current thread
     org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
     org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1041)
     com.xunchang.PersonDaoImpl.getSession(PersonDaoImpl.java:16)
     com.xunchang.PersonDaoImpl.findAllPerson(PersonDaoImpl.java:63)
     com.xunchang.LoginAction.execute(LoginAction.java:20)
     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Hibernate4 No Session found for current thread原因:  http://www.yihaomen.com/article/java/466.htm

解决方法:在applicationContext.xml中的sessionFactory 中<property name="hibernateProperties"></property>加入 hibernate.current_session_context_class=thread

 <property name="hibernateProperties">
            <value>
                ......
                hibernate.current_session_context_class=thread <!-- 解决Hibernate4 No Session found for current thread -->
 </value> </property>

11.最后一个问题就是hibernate 中文乱码,解决方案如下:

复制代码
//写一个字符集过滤器
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet;
public class SetCharacterEncodingFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException{ } public void destroy(){ } }

//在web.xml中加入如下代码,问题解决

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.xunchang.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping> 
<filter-name>encodingFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>

 
复制代码








本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/4366980.html,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
183 1
|
6月前
|
Java 数据库连接 数据库
JSP奖学金管理系统myeclipse开发sqlserver数据库bs框架java编程jdbc
JSP 奖学金管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLSERVER2008,使用java语言开发,系统主要采用B/S模式开发。
35 0
|
6月前
|
Java 关系型数据库 MySQL
JSP学生交流论坛系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 学生交流论坛系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,言开发系统主要采用B/S模式开发。 https://www.bilibili.com/video/BV1jB4y1q7Ut?spm_id_from=333.999.0.0
72 0
|
6月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
107 0
|
6月前
|
Java 关系型数据库 MySQL
JSP在线客户服务支持管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 在线客户服务支持管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
40 0
|
6月前
|
Java 关系型数据库 MySQL
JSP 科研管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 科研管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。系统主要采用B/S模式开发。
36 0
|
6月前
|
Java 关系型数据库 MySQL
JSP实践教学平台系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 实践教学平台系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,数据库文件名是jspskcsjpt.sql,系统名称kcsjpt,使用java语言开发系统主要采用B/S模式开发。
53 0
|
6月前
|
Java 关系型数据库 MySQL
JSP宠物寄养预约系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 宠物寄养预约系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
50 0
|
6月前
|
Java 关系型数据库 MySQL
JSP 教学文档管理系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 教学文档管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,数据库文件名是jspsjxwd.sql,系统名称jxwd,言开发系统主要采用B/S模式开发。
39 0
|
6月前
|
Java 关系型数据库 MySQL
JSP大学生求职就业系统myeclipse开发mysql数据库bs框架java编程jdbc
JSP 大学生求职就业系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
41 1

推荐镜像

更多