麻烦大家帮个忙看下我的spring+hibernate+struts整合,不好意思我将所有的代码全部贴出来了比较长。。请各位法眼看看到底什么地方出错误了。。不胜感激了。。如果有耐心看完,解决问题的话一定加分。并强烈感谢
一个小小的整合却总是报
HTTP Status 404 - Servlet action is not available 
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
我的源代码.
首先struts-config配置 struts。
<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="regForm" type="com.struts.form.RegForm" />
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="regForm"
      input="/reg.jsp"
      name="regForm"
      path="/reg"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy">
      <forward name="no" path="/no.jsp" />
      <forward name="yes" path="/yes.jsp" />
    </action>
  </action-mappings>
  <message-resources parameter="com.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> 
</plug-in>
</struts-config>这时我的spring配置
<?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="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:1433;databaseName=pubs;">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123456"></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>
</props>
</property>
<property name="mappingResources">
<list>
<value>myhiber/Users.hbm.xml</value></list>
</property></bean>

<bean id="UsersDAO" class="myhiber.UsersDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean id="userBiz" class="biz.Register">
<property name="udao">
<ref bean="UsersDAO"/>
</property>
</bean>

<!-- 定义事务管理者 -->
<bean id="TransManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
   <property name="sessionFactory">
    <ref bean="sessionFactory"/>
   </property>
</bean>
<!-- 定义事物模板 -->
<bean id="templateProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="TransManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="check*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 定义业务逻辑对象 -->
<bean id="userBizProxy" parent="templateProxy">
<property name="target">
<ref local="userBiz"/>
</property>
</bean>
<bean name="/reg" class="com.struts.action.RegAction">
<property name="gister">
<ref bean="userBizProxy"/>
</property>
</bean>
</beans>3.。。这时我的web.xml配置<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
     <servlet-name>dwr-invoker</servlet-name>
     <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
     <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>dwr-invoker</servlet-name>
   <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
</web-app>4.这个是是我的页面配置....
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
 
<html> 
<head>
<title>JSP for RegForm form</title>
</head>
<body>
<html:form action="/reg">
    uname : <html:text property="uname"/><html:errors property="uname"/><br/>
upass : <html:password property="upass"/><html:errors property="upass"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>6..这个是我的 业务逻辑Action处理
public class RegAction extends Action {
private IRegister gister;
public IRegister getGister() {
return gister;
}
public void setGister(IRegister gister) {
this.gister = gister;
}
/** 
 * Method execute
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegForm regForm = (RegForm) form;// TODO Auto-generated method stub
System.out.println(regForm.getUname());
System.out.println(regForm.getUname());
if(gister.yes(regForm))
return mapping.findForward("yes");
else
return mapping.findForward("no");
}
}
7.这个是我的 业务逻辑代码
package biz;import myhiber.UsersDAO;
import myhiber.Users;
import com.struts.action.*;
import com.struts.form.*;
public class Register implements IRegister {
 private UsersDAO udao;
 private Users user;/* (non-Javadoc)
 * @see biz.IRegister#getUdao()
 */
public UsersDAO getUdao() {
return udao;
}/* (non-Javadoc)
 * @see biz.IRegister#setUdao(myhiber.UsersDAO)
 */
public void setUdao(UsersDAO udao) {
this.udao = udao;
}
  public boolean yes(RegForm reg){
  user=new Users();
  user.setUname(reg.getUname());
  user.setUpass(reg.getUpass());
  udao.save(user);
  try{
  return true;  
  }catch(Exception ex){
  ex.printStackTrace();
  return false;  
  }
  }}
8这个是我根据业务逻辑类 Register生成的接口IRegister 代码。。
package biz;
import com.struts.form.*;
import myhiber.UsersDAO;public interface IRegister { public abstract UsersDAO getUdao(); public abstract void setUdao(UsersDAO udao); public abstract boolean yes(RegForm reg);}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【BlackSky_Sun】截止到2008-07-18 17:43:35的历史汇总数据(不包括此帖):
    发帖的总数量:20                       发帖的总分数:250                      每贴平均分数:12                       
    回帖的总数量:13                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:20                       结贴的总分数:250                      
    无满意结贴数:8                        无满意结贴分:240                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:40.00 %               无满意结分率:96.00 %                  
    敬礼!
      

  2.   

       <action 
          attribute="regForm" 
          input="/reg.jsp" 
          name="regForm" 
          path="/reg" 
          scope="request" 
          type="org.springframework.web.struts.DelegatingActionProxy"> ---[此处错误:就为RegAction的路径]
          <forward name="no" path="/no.jsp" /> 
          <forward name="yes" path="/yes.jsp" /> 
        </action> 
    根据你的代码你处理RegForm的Action应该是:RegAction;
    所以你的配置文件中type更改.