初学者-ssh整合方法与问题解决办法

   对于初学者来说,将struts,spring,hibernate整合在一起进行项目开发,总会遇到这样或者那样的问题。有时这些问题会让人束手无策。昨天,我复习了下spring hibernate struts 的相关知识,做了个ssh集成的小项目。现将ssh集成的方法和本次集成时出现的问题与解决的办法,在这和大家共享。

我的开发环境:winxp+myeclipse5.5+eclipse3.2+sql server 2000

                   spring 2.0 + hibernate 3.1 + struts 1.2

一、ssh集成

1.spring和hibernate集成:

     spring和hibernate集成很简单,一般将hibernate交给spring管理,在spring的applicationContext.xml文件中加入如下代码即可:

<bean id="dataSource"
	class="org.apache.commons.dbcp.BasicDataSource">
	<property name="driverClassName"
		value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
	</property>
	<property name="url"
		value="jdbc:microsoft:sqlserver://localhost;DatabaseName=jrl_test">
	</property>
	<property name="username" value="sa"></property>
	<property name="password" value="1234"></property>
</bean>
<bean id="sessionFactory"
	class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="dataSource">
		<ref bean="dataSource" />
	</property>
	
	<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">
				org.hibernate.dialect.SQLServerDialect
			</prop>
			<prop key="hibernate.hbm2ddl.auto">update</prop>				
		</props>
	</property>
	
	<property name="mappingResources">
		<list>
			<value>com/jrl/model/News.hbm.xml</value>
			<value>com/jrl/model/NewsReview.hbm.xml</value>
			<value>com/jrl/model/User.hbm.xml</value>
			<value>com/jrl/model/Category.hbm.xml</value>
		</list>
	</property>	
</bean>

  2.spring与struts集成

    spring 和struts集成,是将spring以插件的形式集成到struts中,在struts-config.xml文件中加入如下代码:

  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
  </plug-in>

 

 将struts的action交给spring管理,在struts-config.xml文件中加入如下代码:   

 

 <controller inputForward="true" processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

 

  由spring管理action后,action中就不需要定义type属性

 

<action attribute="loginForm" input="/login.jsp" name="loginForm" path="/login" scope="request">
     <forward name="login" path="/login.jsp"></forward>
     <forward name="success" path="/login_success.jsp"></forward>      	
</action>

  在spring的applicationContext.xml中注入struts的action 

<bean name="/login" class="com.jrl.struts.action.LoginAction">
     <property name="manager" ref="facadeManager"/>
</bean>

 

 3.另一种spring集成办法

    直接将spring集成到web.xml中,当启动webapp即加载applicationContext。在web.xml中加入如下代码

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

<servlet> 
  <servlet-name>context</servlet-name> 
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
  <load-on-startup>1</load-on-startup> 
</servlet> 

 

 

二、 本次遇到的错误及解决办法

 

 错误:http 404 Servlet action is not available

一般出现404,让人的第一感觉就是没有找到对应的资源,

解决办法:首先要找对原因,先保证web.xml,applicationContext.xml,struts-config.xml配置没有错误。如果仍然出现404,那么在web.xml中加载spring的applicationContext,在web.xml中添加如下代码

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

<servlet> 
  <servlet-name>context</servlet-name> 
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
  <load-on-startup>1</load-on-startup> 
</servlet> 

然后在重新启动tomcat,就会发现缺少相应的包(eclipse 没有自动将包加入到WEB-INF/lib中),我这次发现是缺少commons-pool-1.3.jar,将该jar包加入到WEB-INF/lib下,重启tomcat即可。

 

错误:Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
解决办法:一般是缺少jar包, 本次是缺少commons-pool.jar,将缺少的jar加载到工程去即可

 

错误:Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed;nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)

解决办法:一般是spring和hibernate中的jar包冲突了,在使用Spring的AOP编程时,会用到这几个jar:asm-2.2.2.jar,asm-commons-2.2.2.jar ,asm-util-2.2.2.jar,Hibernate使用jar:asm.jar,asm-attrs.jar,其中asm-2.2.2.jar与asm.jar存在类上的冲突!!! 将冲突的包删除即可,本次删除了asm-2.2.2.jar。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值