struts+spring+hibernate搞了一天,总是有Servlet action is not available异常,高手指教一下

一开始我先是struts1.1 + spring1.2.6,没有问题,一切正常
后来我加上hibernate3,改动applicationContext.xml后,编译是总是产生The requested resource (Servlet action is not available) is not available.异常,高手帮我看一下有什么问题

struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config >
<form-beans>
<form-bean name="loginform" type="com.ssh.pro.form.LoginForm" />
</form-beans>

<action-mappings>

<action input="index.jsp" name="loginform" path="/login" scope="request" type="org.springframework.web.struts.DelegatingActionProxy" validate="false">
<forward name="success" path="/admin/LoginSuccess.jsp" />
</action>

</action-mappings>

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

</struts-config>


applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean name="/login" class="com.ssh.pro.action.LoginAction" singleton="false">
<property name="manageinfoDAO">
<ref bean="manageinfoDAOProxy" />
</property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@10.10.10.112:1521:orcl</value>
</property>
<property name="username">
<value>trms</value>
</property>
<property name="password">
<value>trmswaygoing</value>
</property>
</bean>

<!--sessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/ssh/pro/dto/Manageinfo.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="manageinfoDAO" class="com.ssh.pro.dao.ManageinfoDAO">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="manageinfoDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="manageinfoDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

</beans>

DAO:
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class ManageinfoDAO extends HibernateDaoSupport{

private static String hql = "from Manageinfo m where m.username=? ";

public boolean isValidUser(String username, String password) {

List userList = this.getHibernateTemplate().find(hql, username);

if (userList.size() > 0) {

return true;

}

return false;

}

}

我也遇到这个问题,很郁闷

>The requested resource (Servlet action is not available) is not available

这些都是struts或Spring基本配置出现问题,struts配置在web.xml中检查一下,Spring的配置也是web.xml,确认没有问题

出现这样的原因 首先 1.、web.xml文件中未配置ActionServlet。

2、struts-config.xml文件未配置你要访问的Action。

3、你的jsp文件form标记中action属性的路径名称错误。
检查

1、在web.xml文件中加上ActionServlet的配置信息

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

2、在struts-config.xml文件检查你要访问的Action配置文件。

3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。

4、非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs目录下的localhost_log文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。

除了以上的 :
也有可能是找不到spring.jar包 。建议重新导入