框架组合问题集

发布时间:2019-01-24 11:21:59   来源:文档文库   
字号:

一、 Servlete action is not available

说明:这种问题SSH框架结合使用最长出现的问题。

问题现象:2010-9-8 进行SSH组合时出现Servlete action is not available.现象

开发环境:项目名(spring3) struts1.0 spring2.0 hibernate3.1

分析:项目spring3三大框架部署完后,没有添加log4j。导致项目运行时只提示servlet

Action is not available !

第一步:把log4j.jar 包导入项目spring

第二步:设置log4j.properties文件

log4j.rootLogger=info,appender1,appender2

log4j.appender.appender1=org.apache.log4j.FileAppender

log4j.appender.appender2=org.apache.log4j.ConsoleAppender

log4j.appender.appender1.File=c:\log4j.log

log4j.appender.appender1.DatePattern='.'yyyy-MM-dd'.log'

log4j.appender.appender1.layout=org.apache.log4j.PatternLayout

log4j.appender.appender2.layout=org.apache.log4j.PatternLayout

log4j.appender.appender1.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:mm:ss}Method:%l%n%m%n

log4j.appender.appender2.layout.ConversionPattern=%r[%t]%p-%c-%l-%m%n

第三步:重新启动服务后,就报一下错误:

Log4j.log日志:

[INFO]2010-09-0905:21:38 Method: org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)

Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]

[INFO] 2010-09-09 05:21:39 Method: org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:393)

Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@176343e]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1d317ab

[INFO ] 2010-09-09 05:21:40 Method: org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:276)

Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1d317ab: defining beans [ds,sessionfactory,TblFwxxDAO,listdao,listbiz,/list]; root of factory hierarchy

[INFO ] 2010-09-09 05:21:40 Method: org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:282)

Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1d317ab: defining beans [ds,sessionfactory,TblFwxxDAO,listdao,listbiz,/list]; root of factory hierarchy

[ERROR] 2010-09-09 05:21:45 Method: org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:229)

Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ds' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

Caused by:

java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)

at java.lang.Class.getConstructor0(Unknown Source)

at java.lang.Class.getDeclaredConstructor(Unknown Source)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)

………………………………….

第四步:跟据日志提示:java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

由于未找到org/apache/commons/pool/impl/GenericObjectPool/impl/GenericObjectPool这个类导致Context initialization failed

第五步:看到第四步的分析后,检查了项目中的jar包,发现项目中加载框架时没有导入commons-pool.jar

解决办法:从网上下载了commons-pool.jar包后。从新运行就运行正常了。

项目spring3的代码如下:

项目结构如下:

struts-config.xml文件内容如下

xml version="1.0" encoding="UTF-8"?>

DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>

<data-sources />

<form-beans >

<form-bean name="listForm" type="com.pcx.struts.form.ListForm" />

form-beans>

<global-exceptions />

<global-forwards />

<action-mappings >

<action

attribute="listForm"

name="listForm"

path="/list"

scope="request"

type="org.springframework.web.struts.DelegatingActionProxy">

<forward name="list" path="/list.jsp" />

action>

action-mappings>

<message-resources parameter="com.pcx.struts.ApplicationResources" />

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

struts-config>

说明:红色字体是把strutsspring 集成在一起了

applicationContext.xml文件内容如下:

xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"

value="com.microsoft.sqlserver.jdbc.SQLServerDriver">

property>

<property name="url"

value="jdbc:sqlserver://localhost:1433;databaseName=zf">

property>

<property name="username" value="sa">property>

<property name="password" value="xiaoli82102983">property>

bean>

<bean id="sessionfactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource">

<ref bean="ds" />

property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.SQLServerDialect

prop>

props>

property>

<property name="mappingResources">

<list>

<value>com/pcx/hb/entity/TblFwxx.hbm.xmlvalue>

list>

property>

bean>

<bean id="TblFwxxDAO" class="com.pcx.hb.entity.TblFwxxDAO">

<property name="sessionFactory">

<ref bean="sessionfactory" />

property>

bean>

<bean id="listdao" class="com.pcx.dao.listDao">bean>

<bean id="listbiz" class="com.pcx.biz.listBiz">

<property name="listdao" ref="listdao">property>

bean>

<bean name="/list" class="com.pcx.struts.action.ListAction">

<property name="listbiz" ref="listbiz">property>

bean>

beans>

说明:以上加底纹部分为sping hibernate 的集成(hibernatea注入到spring)

呵呵……大功告成!

认真的分析可以解决任何问题!

本文来源:https://www.2haoxitong.net/k/doc/b4e223dfdc3383c4bb4cf7ec4afe04a1b071b0a3.html

《框架组合问题集.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式