struts+Spring+hibernate整合问题

jonde_ 2008-04-07 10:37:28
要在事例struts1.2+spring2.0+hibernate3.0出现如下问题:
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.
--------------------------------------------------------------------------------
//strutsconfig.xml配置内容如下:
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="edu.mju.ui.form.LoginForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
</action-mappings>

<message-resources parameter="edu.mju.ui.ApplicationResources" />

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

</struts-config>
//applicationContext.xml配置内容如下:
<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</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studb</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>

<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<!--引用 -->
<ref bean="dataSource" />
</property>

<!-- 映射文件配置 -->
<property name="mappingResources">
<list>
<!-- 映射文件,如果有多个持久化类,则将有多个映射文件 -->
<value>edu/mju/pojo/TbUser.hbm.xml</value>
</list>
</property>

<!-- 配置Hibernate属性 -->
<property name="hibernateProperties">
<props>
<!-- 选择Hibernate使用的方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<!-- 在控制台显示Hibernate执行的SQL语句 -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<!-- 对象Dao配置 -->
<bean id="userDao" class="edu.mju.service.UserDao">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

<!-- Action的配置,接管struts对Action的管理 -->
<bean name="/login" class="edu.mju.ui.action.LoginAction">
</bean>
</beans>

在测试过程中若我将上面的经色部分删除掉见就要吧.一旦将关于sessionFactory配置进行就出错上面提示错误,这是为什么?

...全文
213 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongyali2005 2008-04-10
  • 打赏
  • 举报
回复
看看.
不是看年.打错了.呵
gongyali2005 2008-04-10
  • 打赏
  • 举报
回复
看年包吧.

昨天我也深受其害啊.
傻根她弟 2008-04-10
  • 打赏
  • 举报
回复
加入log4j 查看详细日志 一定会找到报错信息的

错误的可能:
1.没有配置好
2.类包版本冲突

具体还得看你的日志。

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.
这样的报错 说明你的整个web应用没有启动成功
报错信息远远不止这些;log4j可以提供帮助的
spxrttn 2008-04-10
  • 打赏
  • 举报
回复
SSH整合先运行一下整合的包是否齐备,再去查业务逻辑是否有错。
jonde_ 2008-04-09
  • 打赏
  • 举报
回复
Action类里的代码,业务逻辑都被我注释掉了...
LoginForm loginForm = (LoginForm) form;
String username=loginForm.getUsername();
String password=loginForm.getPassword();
return mapping.findForward("success");
/*
//调用userDao方法
if(userDAO.isValidUser(username, password)){
return mapping.findForward("success");
}else{
return mapping.findForward("fail");
}
*/

现在问题是有配置关于hibernate的东西就会出来HTTP Status 404 - Servlet action is not available
若只有struts与spring就不会有问题了!!!!
sharpyuce 2008-04-08
  • 打赏
  • 举报
回复
楼主 我找了半天 这么不见你的业务bean?
bean /login的依赖注入也没有
报错的提示也没有 没头没脑的 怎么看。。。。
sharpyuce 2008-04-08
  • 打赏
  • 举报
回复
哦 明白:
设计就有问题:DAO层bean和业务Bean怎么都没分离

<!-- Action的配置,接管struts对Action的管理 -->
<bean name="/login" class="edu.mju.ui.action.LoginAction">
</bean>
/login中没注入业务Bean,对于你的配置来说,就是/longin中没注入userDao

改为:
<bean name="/login" class="edu.mju.ui.action.LoginAction">
<property name="userDao" ref="userDao" />
</bean>
jonde_ 2008-04-08
  • 打赏
  • 举报
回复
<!-- 对象Dao配置 -->
<bean id="userDao" class="edu.mju.service.UserDao">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

这个不就是业务bean吗?!!
jonde_ 2008-04-08
  • 打赏
  • 举报
回复
要在事例struts1.2+spring2.0+hibernate3.0出现如下问题:
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.


这个就是运行的时候出现的错误呀..后台没有错误提示!
PS:若把有关Hibernate的配置去掉的话..运行就可以了
yongjiu199 2008-04-07
  • 打赏
  • 举报
回复
给你能运行的现成例子:
http://www.itfuture.org/xiangm.jsp
睿音 2008-04-07
  • 打赏
  • 举报
回复
将log4j的配置文件配置上,贴一下具体的异常问题。从配置文件上看,好像看不出有什么错误。提供错误信息,针对错误解决比较容易些~

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧