麻烦大家帮个忙看下我的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);}
一个小小的整合却总是报
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);}
解决方案 »
- Ext Panel动态加载图片怎么实现?
- 想学习JAVA 原来没基础 请各位指教
- 请问怎么用js 改变 select下拉框的显示值和实际值?
- JAVA的web项目的文件导入问题
- 一个登录的问题,不同角色登录不同页面
- 请教servlet查询数据库并和applet通信问题
- 遇到困难了,关于如何将数据导入mysql数据库
- html:select 的简单问题,各位进来看一下
- java客户端调用cxf webservice服务,服务接收客户端的参数为null值
- tomcat访问问题
- 急,急,急!!用struts+spring+hibernate做了一个登录功能老遇到一个错误 希望高手能帮我解决一下 谢谢!!!
- Linux 下Struts 部署问题,急。。。
楼主【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 %
敬礼!
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更改.