`

初学者-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。

分享到:
评论

相关推荐

    一名初学者关于SSH整合的问题

    对于初学者来说,理解并实现SSH整合可能会遇到一些挑战,以下是一些关于SSH整合的关键知识点: 1. **Spring框架**:Spring作为IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器,负责管理应用...

    ssh整合实例1 简单易懂的ssh整合,适合初学者

    这个"ssh整合实例1"可能是针对初学者的一个教程,旨在帮助他们理解如何配置和使用SSH来连接到远程服务器。在Linux和Unix系统中,SSH广泛用于执行命令、传输文件以及管理服务器,而其安全性得益于数据的加密。 SSH...

    简单的SSH整合,初学者可以看看

    此外,实践中遇到的问题和解决办法也是学习的重要部分,这将帮助你更好地掌握SSH整合的精髓。 总的来说,SSH整合提供了强大的功能,允许开发者更专注于业务逻辑,而不是繁琐的框架集成。尽管现代Web开发中出现了...

    ssh整合 适合初学者

    通过以上学习和实践,初学者将能够掌握SSH整合的基本技能,为进一步的Java Web开发打下坚实基础。同时,不断深入研究和实践,将有助于提升对整个Web应用架构的理解和驾驭能力。在学习过程中,参考书籍和在线资源都能...

    iptv-ssh初学项目

    【iptv-ssh初学项目】是一个针对初学者设计的Java编程实践项目,它基于SSH(Struts2、Spring、Hibernate)三大框架,用于搭建IPTV(交互式网络电视)服务的基础平台。SSH框架是Java Web开发中常用的一套开源整合框架...

    ssh初学者整合demo

    在SSH整合中,Hibernate负责将Java对象与数据库表进行映射,提供了一种无需编写大量SQL语句就能进行数据操作的方式。Hibernate通过实体类、配置文件和Session工厂等元素来实现数据的持久化。 SSH整合的步骤通常包括...

    ssh框架整合demo,经典整合,初学必备

    **Struts2** 是一个基于MVC设计模式的Web应用框架,它有效地解决了在JSP和Servlet中处理业务逻辑和表现层的问题。Struts2通过Action类接收用户请求,然后调用业务逻辑,并将结果返回给视图进行展示。其强大的拦截器...

    轻量级JAVAEE企业应用实战ssh2整合开发

    第二版针对初学者和有一定经验的开发者提供了更全面的实践指导,特别是最后一章的源代码,旨在帮助读者更好地理解和应用SSH2框架。 SSH2框架整合的核心在于将Struts2作为表现层框架,负责处理用户交互和展现;...

    SSH整合开发中 404错误解决总结

    本文将针对SSH(Struts + Spring + Hibernate)框架整合开发过程中常见的404错误进行深入分析,并提供一系列解决方案,帮助初学者更好地理解和解决问题。 #### 一、Spring applicationContext.xml配置问题 1. **...

    ssh整合适合初学者

    SSH整合是Java开发中一种常见的Web应用架构,由Struts2、Spring和Hibernate...通过这个SSH整合项目,初学者不仅可以学习到Java Web开发的基础知识,还能提升解决实际问题的能力,为未来更复杂的项目开发打下坚实基础。

    SSH(整合完毕)框架小案例 --- 适合初学者

    本教程将详细讲解SSH框架的整合过程,适合初学者入门学习。 首先,Spring框架是核心的依赖注入(DI)和面向切面编程(AOP)框架,它负责管理对象的生命周期和配置。在本案例中,Spring将被用来处理业务逻辑层...

    SSH整合原理以及步骤详解

    这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring框架**:Spring是一个全面的Java应用框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,使得...

    ssh整合适合新手

    SSH整合通常指的是在服务器端配置SSH服务,并与前端应用如Spring框架进行集成,以实现远程管理和自动化运维。 对于SSH初学者来说,了解以下知识点至关重要: 1. **SSH基础**:理解SSH的基本原理,包括客户端和...

    CDMan-SSH1

    【CDMan-SSH1】是一个基于SSH(Struts2、Spring、Hibernate)技术栈开发的项目,主要目的是...此外,该项目还可以帮助初学者掌握MVC模式、数据库操作、AOP和依赖注入等核心概念,从而提升其在企业级应用开发中的能力。

    web开发-SSH通讯录

    通过实践这样的项目,开发者可以提升其在实际开发环境中的问题解决能力,并逐步熟悉SSH框架的运用,为后续更复杂的Web应用开发打下坚实的基础。此外,理解SSH通讯录的工作原理也有助于学习其他类型的SSH应用,如远程...

    个人写的SSH简单整合例子,希望对初学者有帮助

    对于初学者来说,刚接触SSH的时候,肯定是一个一个来学习的,接下来需整合他们,而整合的具体事例网上很少,希望通过以上对Struts2.2+Hibernate+Spring+Mysql+Tomcat6.0源码的学习,对大家有所帮助。

    简单的ssh整合图书管理系统

    本项目“简单的SSH整合图书管理系统”旨在为初学者提供一个快速理解并实践SSH整合的平台。在这个系统中,我们将深入探讨SSH框架的核心功能及其在实际应用中的结合方式。 **Struts2** 是一个基于MVC设计模式的Web...

Global site tag (gtag.js) - Google Analytics