拖了这么久才把ssh框架给整合完毕,期间发现自己对SSH的知识真的是知之甚少。在整合期间遇到了无数的坑,我还是先把项目地址发一下吧

首先我遇到的第一个问题是 CreateQuery is not valid without active transaction 在网上搜索了一阵后发现我没有在Spring-config.xml文件里定义完整事务在文件中加入以下

<!--配置事务的传播特性-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 事务执行方式
REQUIRED:指定当前方法必需在事务环境中运行,
如果当前有事务环境就加入当前正在执行的事务环境,
如果当前没有事务,就新建一个事务。
这是默认值。
-->
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="import*" propagation="REQUIRED" />
<!--
指定当前方法以非事务方式执行操作,如果当前存在事务,就把当前事务挂起,等我以非事务的状态运行完,再继续原来的事务。
查询定义即可
read-only="true" 表示只读
-->
<tx:method name="*" propagation="NOT_SUPPORTED" read-only="true" />
</tx:attributes>
</tx:advice> <!-- 定义切面,在 * base.service.*ServiceImpl.*(..) 中执行有关的hibernate session的事务操作 -->
<aop:config>
<aop:pointcut id="serviceOperation" expression="execution(* base.service.*ServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>
  但是发现tx:advice一直是红色的于是在xml文件的头部加入xmlns:tx="http://www.springframework.org/schema/tx”
之后运行工程,又报ClassNotFoundException:org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
同样是在网上搜索之后发现是少了一个名为aspectjweaver.jar的jar包加入之后就好了。
 
但是事情远远没有那么顺利。解决了这个问题之后立马又出现了下一个问题,后来又出现了CreateQuery is not valid without active transaction 这个错误,想必是之前并没有解决它。通过排除法之后发现Spring与hibernate整合需要注释掉<property name=“current_session_context_class”>thread</property>这句话。貌似加入这句后前后获取到的session就不是同一个。
随后又出现了model.User is not mapped [from model.User u where u.name ='null' and u.passwrod=‘null’]  起初我不明白为什么参数都是null,后来发现在ssh中由set,get方法自动注入时有两个需要注意的地方
1.在jsp 的form中需要注意input元素的name值必须要与action中成员变量名字相同,注意了是name值而不是id值
2.get,set方法自动生成时需要注意userName对应的get方法是getUserName(),只有这样才能识别自动注入
解决了这部分的问题之后,有出现了model.User is not mapped [from model.User u where u.name =‘xxx' and u.passwrod=‘123’]错误,即action已经获取到了tsp传过来的值但是没有匹配到对象。
后来我发现,数据库中的user表不知道什么时候被我改动过了,于是我又重新生成了一个User类以及User.hbm.xml。将dao类中的hql改为from User u where u.userName=“%s”and u.password=“%s"
 
终于完成了ssh的整合   从这里可以看出我对Spring hibernate Struts真的是一知半懂,真的得下功夫好好地看看框架知识了。。
 
 
格式有点乱 ,这个marsedit软件目前还是用的不太熟练。 太晚了  就睡了

五子棋Web版的开发(二)--整合Spring4.3+hibernate4+Struts2.3的更多相关文章

  1. 五子棋Web版的开发(一)---搭建IDEA SSH环境

    最近公司都没啥事,我在完成了控制台版的本地五子棋后(github地址:https://github.com/lkq51/wuziqi_console2),想将他升级成为一个web版的五子棋游戏.因为公 ...

  2. 五子棋Web版的开发(三)

    最近在这个上面花费的时间不多,进展不大,而且遇到了一个问题好久也没有解决..我将struct2 改为Spring MVC.但是ziRUL的自动映射却无法起作用.   一直不知道为什么会出现这个问题.. ...

  3. 石家庄地铁系统开发(java web版)(二)

    两种方法: 一,自己写数据库,自己写算法实现 二,调用已有软件的API(百度,高德)

  4. 【Java Web开发学习】Spring4整合thymeleaf视图解析

    [Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...

  5. Java Web高性能开发(二)

    今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...

  6. 几款web版整合(QQ、msn、icq、yahoo通、Gtalk等)即时聊天http://hi.baidu.com/ejie/blog/item/e89794ef9a9431efce1b3ebd.html

        直到近期为止,我们经常使用的即时聊天工具(QQ.msn等)了Web版,大家不用下载庞大软件,直接打开网页就能够与自己的好友聊天,很方便.在此将时汇总,便于大家查找,节约大家一点时间. 此都是官 ...

  7. [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)

    转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...

  8. 开发Web版一对一远程直播教室只需30分钟 - 使用face2face网络教室

    转载自:https://blog.csdn.net/wo_shi_ma_nong/article/details/88110111 在“为网站开发远程直播教室的折腾过程及最终实现”中,介绍了如何使用f ...

  9. 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》

    <实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明    辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...

随机推荐

  1. libcurl编译

    下载: git://github.com/bagder/curl.git openssl: openssl编译   for linux or mingw:./buildconf./configure ...

  2. Hibernate get 和load的区别

    1 load是要用的时候才从数据库去查询,get 是马上查询. 2 对于不存在的记录,get会报空指针异常,load会报 org.hibernate.ObjectNotFoundException:  ...

  3. jQuery easyUI Pagination控件自定义div分页(不用datagrid)

    一般后台管理页面分页是通过datagrid加Pagination分页,但是如果前台页面没有用表格,例如博客的文章列表从上到下一般是到div分页, 这时如果还要用Pagination,则可以这样: 页面 ...

  4. Android重启应用程序代码

    Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage(getBaseContext().getPacka ...

  5. Windows Server 中开启 SQL Server 2008 的1433端口

    在Windows Server2008 服务器上部署了Microsofit SQL Server2008 R2 ,想让远程机器能够访问,于是开放1433端口,进行了如下设置: 1.打开“本地安全策略” ...

  6. 菜鸟初试水--JQuery基础

    此文仅作入门级文章,望大神们高抬贵手! JQuery: 它是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作. JQuery的用途: ①访问和操作DOM元素: 使用j ...

  7. 解决 winedit 打开tex文件 reading error

    从网上下载的论文模板,发现直接双击打开.tex文件(默认关联用winedit打开)时会出现reading error,然后看不到任何文字(网上有人讨论打开是乱码的问题,但是我的是完全看不到任何东西), ...

  8. JAVA并发,线程异常捕获

    由于线程的特性,当我们启动了线程是没有办法用try catch捕获异常的,如下例: package com.xt.thinks21_2; import java.util.concurrent.Exe ...

  9. Openstack命令收集

    查看rabbitmq 队列 rabbitmqctl list_queues 查看keystone的用户 keystone user-list 查看keystone endpoint keystone ...

  10. rsyslog 不打印日志到/var/log/messages

    *.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages 表示 所有来源的info级别都记录到/var/log/me ...