SSH整合。报错

zhouixi 2016-12-04 08:33:55

错误信息。
Stacktraces

Unable to instantiate Action, employeeAction, defined for 'emp-list' in namespace '/'employeeAction
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:316)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:553)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:662)

java.lang.ClassNotFoundException: employeeAction
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)
com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:108)
com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:233)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:153)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:151)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:121)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:297)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:553)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:662)


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- 为spring添加监听器 -->

<!-- 配置 Struts2 的 Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>


struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<package name="default" namespace="/" extends="struts-default">

<action name="emp-*" class="employeeAction"
method="{1}">
<result name="list">/WEB-INF/views/emp-list.jsp</result>
<result type="stream" name="delete">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
<result name="input">/WEB-INF/views/emp-input.jsp</result>
<result name="success" type="redirect">/emp-list</result>
</action>
</package>
</struts>

hibernate.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置hibernate的基本属性-->

<!-- 方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

<!--是否显示及格式化SQL-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>

<!-- 生成数据表的策略 -->
<property name="hibernate.hbm2ddl.auto">update</property>

<!--二级缓存相关 -->
</session-factory>
</hibernate-configuration>

applications-beans.xml


<?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.xsd">

<bean id="employeeDao" class="com.xx.ssh.dao.EmployeeDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="departmentDao" class="com.xx.ssh.dao.DepartmentDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="employeeService" class="com.xx.ssh.service.EmployeeService">
<property name="employeeDao" ref="EmployeeDao"></property>
</bean>

<bean id="departmentService" class="com.xx.ssh.service.DepartmentService">
<property name="departmentDao" ref="DepartmentDao"></property>
</bean>

<bean id="employeeAction" class="com.xx.ssh.actions.EmployeeAction"
scope="prototype">
<property name="employssService" ref="EmployeeService"></property>
<property name="departmentService" ref="DepartmentService"></property>
</bean>
</beans>

提示找不employeeAction我按ctrl+点击跟进类里面。
实在是找不到哪里有问题。。
折腾了半天没结果了。
...全文
794 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouixi 2016-12-07
  • 打赏
  • 举报
回复
引用 40 楼 lanlandemiaomiao 的回复:
[quote=引用 36 楼 m2200 的回复:] [quote=引用 34 楼 lanlandemiaomiao 的回复:]
猫咪咋跑这来了,[/quote] 来看看[/quote] 我还给你加分了、
莉莉丝O-O 2016-12-07
  • 打赏
  • 举报
回复
引用 41 楼 zhouixi 的回复:
我还给你加分了、
哎呀,太感谢了,没想到我还能接到技术分
爱睡觉的阿狸 2016-12-06
  • 打赏
  • 举报
回复
hibernate是4.X的话把配置里的3改成4
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 24 楼 zhouixi 的回复:
[quote=引用 23 楼 qnmdcsdn 的回复:] org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 换成4试试。spring4中已经放弃了hibernatesport的东西,相应的配置也会有些改变,你可以查一下相关的信息
厉害了我的哥。可以。好像 这个filter必须写在struts2 filter前面。。。这个还有什么标准吗。 如果用3 javax.servlet.ServletException: Filter execution threw an exception 就抛这个异常用4就正常了。谢谢了。 [/quote] Hibernate的提示错误 Caused by: org.hibernate.HibernateException: identifier of an instance of .[类名]. is alterde from [数字] to [数字] 原因:是由于在一个事务中更新了主键,而主键是不能被更新的.网上说的是这个。
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 21 楼 qnmdcsdn 的回复:
[quote=引用 20 楼 zhouixi 的回复:] [quote=引用 17 楼 qnmdcsdn 的回复:] org.springframework.orm.hibernate3.support.OpenSessionInViewFilter web.xml中加个filter

<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

还是有错误。。是不是缺了啥子[/quote] 你的ssh的版本是多少[/quote]



    identifier of an instance of com.atguigu.ssh.entities.Department was altered from 2 to 1
    identifier of an instance of com.atguigu.ssh.entities.Department was altered from 2 to 1;
 nested exception is org.hibernate.HibernateException: 
identifier of an instance of com.atguigu.ssh.entities.Department was altered from 2 to 1
URL:http://localhost:8080/ssh-2/emp-save.action 后面没有抛异常只有SQL语句。原因更改后的ID没有传过去么。
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 23 楼 qnmdcsdn 的回复:
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 换成4试试。spring4中已经放弃了hibernatesport的东西,相应的配置也会有些改变,你可以查一下相关的信息
厉害了我的哥。可以。好像 这个filter必须写在struts2 filter前面。。。这个还有什么标准吗。 如果用3 javax.servlet.ServletException: Filter execution threw an exception 就抛这个异常用4就正常了。谢谢了。
  • 打赏
  • 举报
回复
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 换成4试试。spring4中已经放弃了hibernatesport的东西,相应的配置也会有些改变,你可以查一下相关的信息
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 21 楼 qnmdcsdn 的回复:
[quote=引用 20 楼 zhouixi 的回复:] [quote=引用 17 楼 qnmdcsdn 的回复:] org.springframework.orm.hibernate3.support.OpenSessionInViewFilter web.xml中加个filter

<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

还是有错误。。是不是缺了啥子[/quote] 你的ssh的版本是多少[/quote] hibernate4 struts2 2.3.15 spring 4
  • 打赏
  • 举报
回复
引用 20 楼 zhouixi 的回复:
[quote=引用 17 楼 qnmdcsdn 的回复:] org.springframework.orm.hibernate3.support.OpenSessionInViewFilter web.xml中加个filter

<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

还是有错误。。是不是缺了啥子[/quote] 你的ssh的版本是多少
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 17 楼 qnmdcsdn 的回复:
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter web.xml中加个filter

<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

还是有错误。。是不是缺了啥子
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 18 楼 m2200 的回复:

	<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
严重: Servlet.service() for servlet [jsp] in context with path [/ssh-2] threw exception [Filter execution threw an exception] with root cause java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session; at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:330) at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:208) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.getSession(OpenSessionInViewFilter.java:293) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:207) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 是少了哪个东西吗。还是需要配其他的什么参数
莉莉丝O-O 2016-12-06
  • 打赏
  • 举报
回复
引用 36 楼 m2200 的回复:
[quote=引用 34 楼 lanlandemiaomiao 的回复:]
猫咪咋跑这来了,[/quote] 来看看
wswzh0329 2016-12-06
  • 打赏
  • 举报
回复
引用 38 楼 zhouixi 的回复:
[quote=引用 37 楼 wswzh0329 的回复:] 。。怎么贴代码的~
复制 。粘贴阿。[/quote] 。。谢谢,已经尝试出来了 工具栏中有个代码格式的按钮
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 37 楼 wswzh0329 的回复:
。。怎么贴代码的~
复制 。粘贴阿。
wswzh0329 2016-12-06
  • 打赏
  • 举报
回复
。。怎么贴代码的~
爱睡觉的阿狸 2016-12-06
  • 打赏
  • 举报
回复
引用 34 楼 lanlandemiaomiao 的回复:
猫咪咋跑这来了,
爱睡觉的阿狸 2016-12-06
  • 打赏
  • 举报
回复
引用 33 楼 zhouixi 的回复:
[quote=引用 32 楼 qnmdcsdn 的回复:] [quote=引用 31 楼 zhouixi 的回复:] [quote=引用 28 楼 m2200 的回复:] 你这一个Struts2的问题延伸到hibernate延伸了那么多… …
头痛。版主这个问题要怎么解决哦。。。 [/quote] 实体主键是不能更改的,你没事改主键干嘛[/quote] 我是员工表的ID引用部门表 改的是员工表ID外键获取到部门表的部门。 不过解决了 我的表后面加了 one-many-one关系表 加了 lazy="false"属性 然后把上面的fiilter也加上。 一切都OK了。不管是添加还是编辑,就是在添加的时候有点小错误。问题不大。 谢谢你们的热心帮助阿。代码还是要研究一下。[/quote] 你这问题后面延伸了太多了,5楼25分即可,
莉莉丝O-O 2016-12-06
  • 打赏
  • 举报
回复
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
引用 32 楼 qnmdcsdn 的回复:
[quote=引用 31 楼 zhouixi 的回复:] [quote=引用 28 楼 m2200 的回复:] 你这一个Struts2的问题延伸到hibernate延伸了那么多… …
头痛。版主这个问题要怎么解决哦。。。 [/quote] 实体主键是不能更改的,你没事改主键干嘛[/quote] 我是员工表的ID引用部门表 改的是员工表ID外键获取到部门表的部门。 不过解决了 我的表后面加了 one-many-one关系表 加了 lazy="false"属性 然后把上面的fiilter也加上。 一切都OK了。不管是添加还是编辑,就是在添加的时候有点小错误。问题不大。 谢谢你们的热心帮助阿。代码还是要研究一下。
  • 打赏
  • 举报
回复
引用 31 楼 zhouixi 的回复:
[quote=引用 28 楼 m2200 的回复:] 你这一个Struts2的问题延伸到hibernate延伸了那么多… …
头痛。版主这个问题要怎么解决哦。。。 [/quote] 实体主键是不能更改的,你没事改主键干嘛
加载更多回复(22)

81,123

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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