2007-08-15
struts+spring+hibernate整合了一天了,还没成功
关键字: struts+spring+hibernate 整合
struts+spring+hibernate整合了一天了,还没成功,请各位看看,哪里不对了
错误提示如下:
struts-config.xml文件如下:
applicationContext.xml 文件如下:
SysuserDAO.java内容如下:
FindUserAction.java内容如下:
web.xml配置如下:
错误提示如下:
HTTP Status 404 - Servlet action is not available type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available. Apache Tomcat/5.5.23
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="findUserForm" type="org.xredleaf.form.FindUserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="findUserForm"
input="/form/findUser.jsp"
name="findUserForm"
path="/findUser"
scope="request"
validate="true"
/>
</action-mappings>
<message-resources parameter="org.xredleaf.ApplicationResources" />
<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 id="DataSoure" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </property> <property name="url"> <value>jdbc:microsoft:sqlserver://localhost:1433</value> </property> <property name="username"> <value>sa</value> </property> <property name="password"> <value>123456</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="DataSoure" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect </prop> </props> </property> <property name="mappingResources"> <list> <value>org/xredleaf/dao/Sysuser.hbm.xml</value> </list> </property> </bean> <bean id="SysuserDAO" class="org.xredleaf.dao.SysuserDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean name="/findUser" class="org.xredleaf.action.FindUserAction" singleton="false"> <property name="dao"> <ref bean="SysuserDAO"/> </property> </bean> </beans>
SysuserDAO.java内容如下:
package org.xredleaf.dao;
import java.util.Date;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* Data access object (DAO) for domain model class Sysuser.
* @see org.xredleaf.dao.Sysuser
* @author MyEclipse - Hibernate Tools
*/
public class SysuserDAO extends HibernateDaoSupport {
private static final Log log = LogFactory.getLog(SysuserDAO.class);
//property constants
public static final String USERNAME = "username";
public static final String PASSWORD = "password";
public static final String TYPE = "type";
protected void initDao() {
//do nothing
}
public void SysuserDAO(){
log.debug("init SysuserDAO");
}
public void save(Sysuser transientInstance) {
log.debug("saving Sysuser instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public void delete(Sysuser persistentInstance) {
log.debug("deleting Sysuser instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public Sysuser findById( java.lang.Integer id) {
log.debug("getting Sysuser instance with id: " + id);
try {
Sysuser instance = (Sysuser) getHibernateTemplate()
.get("org.xredleaf.pojo.Sysuser", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public List findByExample(Sysuser instance) {
log.debug("finding Sysuser instance by example");
try {
List results = getHibernateTemplate().findByExample(instance);
log.debug("find by example successful, result size: " + results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug("finding Sysuser instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Sysuser as model where model."
+ propertyName + "= ?";
return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
public List findByUsername(Object username) {
return findByProperty(USERNAME, username);
}
public List findByPassword(Object password) {
return findByProperty(PASSWORD, password);
}
public List findByType(Object type) {
return findByProperty(TYPE, type);
}
public Sysuser merge(Sysuser detachedInstance) {
log.debug("merging Sysuser instance");
try {
Sysuser result = (Sysuser) getHibernateTemplate()
.merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}
public void attachDirty(Sysuser instance) {
log.debug("attaching dirty Sysuser instance");
try {
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public void attachClean(Sysuser instance) {
log.debug("attaching clean Sysuser instance");
try {
getHibernateTemplate().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
public static SysuserDAO getFromApplicationContext(ApplicationContext ctx) {
return (SysuserDAO) ctx.getBean("SysuserDAO");
}
}
FindUserAction.java内容如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package org.xredleaf.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.xredleaf.dao.Sysuser;
import org.xredleaf.dao.SysuserDAO;
import org.xredleaf.form.FindUserForm;
/**
* MyEclipse Struts
* Creation date: 08-15-2007
*
* XDoclet definition:
* @struts.action path="/findUser" name="findUserForm" input="/form/findUser.jsp" scope="request" validate="true"
*/
public class FindUserAction extends Action {
private static final Log log = LogFactory.getLog(FindUserAction.class);
private SysuserDAO dao;
public FindUserAction(){
log.debug("init FindUserAction");
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
log.debug("start...");
FindUserForm findUserForm = (FindUserForm) form;
List list = dao.getHibernateTemplate().loadAll(Sysuser.class);
//dao=(SysuserDAO)getBean("SysuserDAO");
log.debug(list.size());
return null;
}
public void setDao(SysuserDAO dao){
this.dao=dao;
}
public SysuserDAO getDao(){
return dao;
}
}
web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
评论
bei-jin-520
2008-01-07
在STRUTS-CONFIG.XML配个控制器。你的STRUTS和SPRING就没整合在一快
zhangpeng8394
2007-12-27
在struts配置文件中使用controller
试一下
试一下
红修罗
2007-11-16
直接使用Struts2 配置起来比较简单
梦之谷
2007-11-15
这个问题我也碰过,应该是spring和hibernate结合有问题,你试着把
<property name="mappingResources">
<list>
<value>org/xredleaf/dao/Sysuser.hbm.xml</value>
</list>
</property>
这配置注释掉,再运行,如果成功的话那真的是spring和hibernate的结合问题,关于这个问题我也正在困扰之中,急求别人帮我解决啊!!!我的同学跟我说过试着用桥连接,这样成功率会大点
<property name="mappingResources">
<list>
<value>org/xredleaf/dao/Sysuser.hbm.xml</value>
</list>
</property>
这配置注释掉,再运行,如果成功的话那真的是spring和hibernate的结合问题,关于这个问题我也正在困扰之中,急求别人帮我解决啊!!!我的同学跟我说过试着用桥连接,这样成功率会大点
mhqawjh
2007-10-13
在你的struts中的action配置中,应该加上这样一句话
type="org.springframework.web.struts.DelegatingActionProxy"
原因:你这里利用的是Spring委托的方式与Struts集成。
分析下你的代码:
你给出了URL,然后程序会在Struts配置文件里面找相应的Action,但是根本找不到。所以你要把这个任务交给Spring的一个类,让它去帮你找,加上上述代码以后,程序就会在Sring的配置文件里找,这样才找到了你自定义的Action处理类。大功告成!!!
type="org.springframework.web.struts.DelegatingActionProxy"
原因:你这里利用的是Spring委托的方式与Struts集成。
分析下你的代码:
你给出了URL,然后程序会在Struts配置文件里面找相应的Action,但是根本找不到。所以你要把这个任务交给Spring的一个类,让它去帮你找,加上上述代码以后,程序就会在Sring的配置文件里找,这样才找到了你自定义的Action处理类。大功告成!!!
daydup
2007-10-10
action的PATH有问题
icream
2007-10-04
看看hbing的代码吧
struts-config配置错误
需要配置代理bean
不过spring新的配置方式不需要这样配
struts-conifg还是照struts配法
参考下springside
struts-config配置错误
需要配置代理bean
不过spring新的配置方式不需要这样配
struts-conifg还是照struts配法
参考下springside
lgx522
2007-10-03
别整了,找个现成的,比如说Appfuse
mhqawjh
2007-10-02
兄弟,看看本人写的这个东西,有没有收获???
http://mhqawjh.javaeye.com/blog/128748
http://mhqawjh.javaeye.com/blog/128748
hunter006
2007-09-25
404 struts配置问题
lsqlister
2007-09-25
spring和struts有三种集成方式啊。
2.1 在struts-config.xml中加入ContextLoaderPlugIn
ContextLoaderPlunIn是Struts 1.1+ 的插件,用来为 Struts 的 ActionServlet 加载 Spring的Application Context。这个Context引用 WebApplicationContext (由 ContextLoaderListener 加载) 作为它的父Context。默认的context文件是映射的 ActionServlet 的名字,加上 -servlet.xml后缀。 如果 ActionServlet 在 web.xml 里面的定义是 action, 那么默认的文件就是 /WEB-INF/action-servlet.xml。
格式如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
2.2 在Struts-config.xml中加入DelegatingRequestProcessor
用Spring的DelegatingRequestProcessor重载Struts 默认的 RequestProcessor。这样当收到一个针对Action的请求时,DelegatingRequestProcessor会自动从Spring Context中查找对应的Action Bean。
格式如下:
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
2.3 建立struts-config.xml与action-servlet.xml中Action与Bean的对应关系
连接 struts-config.xml 和 action-servlet.xml 中的 Action与Bean的桥梁是action 的"path"和 bean 的"name"。
如果你在 struts-config.xml 文件中有如下配置:<action path="/users" .../>
你必须在 action-servlet.xml 中将 Action bean 的名字定义为 "/users":<bean name="/users" class="..."/>
设定完以后,action的type属性可以省略不写,因为所有的Action都在Spring Context中寻找。注意这里bean用的是name属性,而不是id,因为"/"在id属性中是非法字符。
2.1 在struts-config.xml中加入ContextLoaderPlugIn
ContextLoaderPlunIn是Struts 1.1+ 的插件,用来为 Struts 的 ActionServlet 加载 Spring的Application Context。这个Context引用 WebApplicationContext (由 ContextLoaderListener 加载) 作为它的父Context。默认的context文件是映射的 ActionServlet 的名字,加上 -servlet.xml后缀。 如果 ActionServlet 在 web.xml 里面的定义是 action, 那么默认的文件就是 /WEB-INF/action-servlet.xml。
格式如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
2.2 在Struts-config.xml中加入DelegatingRequestProcessor
用Spring的DelegatingRequestProcessor重载Struts 默认的 RequestProcessor。这样当收到一个针对Action的请求时,DelegatingRequestProcessor会自动从Spring Context中查找对应的Action Bean。
格式如下:
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
2.3 建立struts-config.xml与action-servlet.xml中Action与Bean的对应关系
连接 struts-config.xml 和 action-servlet.xml 中的 Action与Bean的桥梁是action 的"path"和 bean 的"name"。
如果你在 struts-config.xml 文件中有如下配置:<action path="/users" .../>
你必须在 action-servlet.xml 中将 Action bean 的名字定义为 "/users":<bean name="/users" class="..."/>
设定完以后,action的type属性可以省略不写,因为所有的Action都在Spring Context中寻找。注意这里bean用的是name属性,而不是id,因为"/"在id属性中是非法字符。
tovegar
2007-09-21
建议看一下modelstry,虽然下载不到了,但是看一下他得主要流程!也是很有用处得
abcde10156
2007-09-20
我以前也出过和你一样的问题,是spring的配置文件不对
liuzongan
2007-09-20
在strurts-config.xml添加
liuzongan
2007-09-20
用Spring的DelegatingRequestProcessor重载Struts 默认的 RequestProcessor。这样当收到一个针对Action的请求时,DelegatingRequestProcessor会自动从Spring Context中查找对应的Action Bean。
格式如下:
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
格式如下:
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
wenjinlan
2007-09-19
web.xml要配上welcomefiles
yapi
2007-09-19
give up ,
take "Rails"
take "Rails"
fulianglove
2007-08-27
9 lou right
zhao
2007-08-19
这样每个Action分别在struts-config.xml和Spring配置文件中要配置相应的内容,有个办法,在struts-config.xml配置文件中只加入
<controller processorClass= "org.springframework.web.struts.DelegatingRequestProcessor">, 随后,只需在Spring配置文件中配置相应的Action即可
redleaf
2007-08-19
问题在前些天已经解决了,太忙了,没回贴,呵呵
主要就是少了个type="org.springframework.web.struts.DelegatingActionProxy"
主要就是少了个type="org.springframework.web.struts.DelegatingActionProxy"
- 浏览: 32303 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
用javamail发送带附件的邮 ...
我的意思是在论坛中说已经解决了上面的问题,不知道是怎么解决的
-- by s_jd -
用javamail发送带附件的邮 ...
请问怎么解决的呀?我看了不是很明白,刚用Javamail,希望能指点下,谢谢
-- by s_jd -
struts+spring+hibernate ...
在STRUTS-CONFIG.XML配个控制器。你的STRUTS和SPRING就 ...
-- by bei-jin-520 -
struts+spring+hibernate ...
在struts配置文件中使用controller 试一下
-- by zhangpeng8394 -
struts+spring+hibernate ...
直接使用Struts2 配置起来比较简单
-- by 红修罗






评论排行榜