s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题
2015-03-25 22:26
405 查看
1.新建一个webproject
2.首先生成HibernateFacet
3.HibernateFacet安装步骤
4.然后是springfacet安装步骤
5.最后是strutsfacet的配置
6.最后的整体布局如下所示
7.在服务器上运行,发现如下错误:
严重:Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'transactionManager'definedinclasspathresource[applicationContext.xml]:Invocationofinitmethodfailed;nestedexceptionisorg.hibernate.service.UnknownUnwrapTypeException:Cannotunwraptorequestedtype[javax.sql.DataSource]
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
........
主要是没有在applicationContext.xml中配置DataSource这个bean,配置好后将其注入sessionFactory
8.新建PersonDao(DAO层),它的实现类PersonDaoImpl,以及Action类LoginAction
在applicationContext.xml中添加如下代码:
9.POJO与hibernate层:新建POJO(普通java类,对于每一个变量拥有getter和setter方法),新建映射hibernate持久化类person.cfg.xml文件如下:
然后在applicationContext.xml中的sessionFactory(bean)中加载该映射文件如下:
10.运行服务器,问题又来了,如下:
org.hibernate.HibernateException:NoSessionfoundforcurrentthread
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(NativeMethod)
Hibernate4NoSessionfoundforcurrentthread原因:'target='_blank'>http://www.yihaomen.com/article/java/466.htm
解决方法:在applicationContext.xml中的sessionFactory中<propertyname="hibernateProperties"></property>加入hibernate.current_session_context_class=thread
11.最后一个问题就是hibernate中文乱码,解决方案如下:
<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>
2.首先生成HibernateFacet
3.HibernateFacet安装步骤
4.然后是springfacet安装步骤
5.最后是strutsfacet的配置
6.最后的整体布局如下所示
7.在服务器上运行,发现如下错误:
主要是没有在applicationContext.xml中配置DataSource这个bean,配置好后将其注入sessionFactory
<!--新加入datasource--> <beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="com.mysql.jdbc.Driver"/> <propertyname="url"value="jdbc:mysql://localhost:3306/hjzgg_test?characterEncoding=UTF-8"/> <propertyname="username"value="root"/> <propertyname="password"value="hjzgg5211314"/> </bean> <beanid="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <propertyname="configLocation" value="classpath:hibernate.cfg.xml"> </property> <!--新加入将dataSource注入到sessionFactory中--> <propertyname="dataSource"ref="dataSource"></property> <propertyname="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<!--解决Hibernate4NoSessionfoundforcurrentthread-->
</value></property>
8.新建PersonDao(DAO层),它的实现类PersonDaoImpl,以及Action类LoginAction
在applicationContext.xml中添加如下代码:
<beanid="personDao"class="com.xunchang.PersonDaoImpl"> <!--采用依赖注入传入SessionFactory的引用--> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> <beanid="login"class="com.xunchang.LoginAction"> <propertyname="personDao"ref="personDao"/> </bean>
9.POJO与hibernate层:新建POJO(普通java类,对于每一个变量拥有getter和setter方法),新建映射hibernate持久化类person.cfg.xml文件如下:
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEhibernate-mapping PUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mappingpackage="com.xunchang"> <classname="Person"table="home402"> <!--定义持久化类的表示属性--> <idname="personId"column="personId"type="java.lang.Integer"> <!--定义主键生成策略--> <generatorclass="identity"/> </id> <propertyname="person_name"column="person_name"type="java.lang.String"/> <propertyname="person_age"column="person_age"type="java.lang.Integer"/> </class> </hibernate-mapping>
然后在applicationContext.xml中的sessionFactory(bean)中加载该映射文件如下:
<beanid="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <propertyname="configLocation" value="classpath:hibernate.cfg.xml"> </property> <!--新加入将dataSource注入到sessionFactory中--> ....... ...... <!--通过配置文件的方式获取数据源--> <propertyname="mappingResources"> <list> <!--以下用来列出所有的PO映射文件--> <value>person.cfg.xml</value> </list> </property> </bean>
10.运行服务器,问题又来了,如下:
Hibernate4NoSessionfoundforcurrentthread原因:
解决方法:在applicationContext.xml中的sessionFactory中<propertyname="hibernateProperties"></property>加入hibernate.current_session_context_class=thread
<propertyname="hibernateProperties"> <value> ...... hibernate.current_session_context_class=thread<!--解决Hibernate4NoSessionfoundforcurrentthread--> </value></property>
11.最后一个问题就是hibernate中文乱码,解决方案如下:
//写一个字符集过滤器 importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.HttpServlet; publicclassSetCharacterEncodingFilterextendsHttpServletimplementsFilter{ publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); chain.doFilter(request,response); } publicvoidinit(FilterConfigconfig)throwsServletException{ } publicvoiddestroy(){ } } //在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>
相关文章推荐
- 在windows下利用firewatir搭建测试框架时遇到的编码问题和解决方法
- LFS6.8搭建过程中遇到的一些问题和解决方法
- CUnit开发环境搭建过程可能遇到的一些问题及解决方法
- Eclipse下搭建Android开发环境遇到的一些问题及解决
- 搭建Hadoop时候遇到的一些问题以及解决方法
- 在使用putty工具进行远程登录时也许会遇到一些问题,下面列出了一些问题有利于帮助大家解决:
- MyEclipse遇到的一些问题解决办法
- Moses搭建过程遇到的一些问题与解决
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- 关于myeclipse安装extjs4.2提示插件spket遇到的一些问题及解决办法
- spring mvc + spring + mybatis 框架搭建 遇到的一些问题及解决方案
- Spring+Spring MVC+MyBatis 框架搭建 遇到问题及解决方法
- 面试的岁月!工作能力的提升是解决问题的数量和质量双重结果!以下是Hibernate框架搭建遇到的问题。
- 自己搭建MVC时遇到的一些问题及解决办法
- 关于VS 使用GDB工具调试ADT下JNI时遇到的一些问题的解决
- S2SH框架搭建是遇到的问题
- 在mac搭建Jekyll,遇到的一些问题及解决方法
- MAC 上使用MySQL Workbench工具管理mysql数据库时遇到的一些问题及解决方法
- 上传本地仓库到github上时遇到的一些问题以及解决方法
- mini2440交叉编译工具安装及使用过程中可能会遇到的问题及解决办法