Spring 的问题

qixueqi 2008-01-24 03:13:29
本人刚刚开始学习Spring
遇到一些问题
在此请教
LogThrow通知
总是报错
错误如下
java.lang.IllegalArgumentException: At least one handler method must be found in class [class com.gc.action.ExceptionHandler]
at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.<init>(ThrowsAdviceInterceptor.java:93)
at org.springframework.aop.framework.adapter.ThrowsAdviceAdapter.getInterceptor(ThrowsAdviceAdapter.java:41)
at org.springframework.aop.framework.adapter.DefaultAdvisorAdapterRegistry.getInterceptors(DefaultAdvisorAdapterRegistry.java:77)
at org.springframework.aop.framework.AdvisorChainFactoryUtils.calculateInterceptorsAndDynamicInterceptionAdvice(AdvisorChainFactoryUtils.java:87)
at org.springframework.aop.framework.HashMapCachingAdvisorChainFactory.getInterceptorsAndDynamicInterceptionAdvice(HashMapCachingAdvisorChainFactory.java:49)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:190)
at $Proxy0.doInsert(Unknown Source)
at com.gc.action.TestApp.main(TestApp.java:28)
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bubble1000 2009-07-16
  • 打赏
  • 举报
回复
我想知道为什么名字写错不行?
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
处理方法我有的阿
public class LogThrow implements ThrowsAdvice {
private Logger logger = Logger.getLogger(this.getClass().getName());
public void AfterThrowing(Method method, Object[] args, Object target, ServletException subclass) throws Throwable {
logger.log(Level.INFO,"shen he shu ju you yi chang...");
}
public void AfterThrowing(RemoteException ex) throws Throwable {
logger.log(Level.INFO,"shen he shu ju you yi chang...");
}
}

正好三个全了
帮忙看看
谢拉
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--Spring AOP-->

<bean id="log" class="com.gc.action.LogAround"/>
<bean id="timeBook" class="com.gc.action.TimeBook"/>
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>

<!--Spring Throw以下-->
<bean id="logThrow" class="com.gc.action.LogThrow"/>
<bean id="logThrowAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref bean="logThrow"/>
</property>
<property name="patterns">
<value>.*doAuditing.*</value>
</property>
</bean>

<bean id="logProxy4" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.gc.action.TimeBookInterface</value>
</property>
<property name="target">
<ref bean="timeBook"/>
</property>
<property name="interceptorNames">
<list>
<value>logThrowAdvisor</value>
</list>
</property>
</bean>
</beans>
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
TestApp:

ApplicationContext actx = new FileSystemXmlApplicationContext("throw-config.xml");

TimeBookInterface timeBookInterface = (TimeBookInterface)actx.getBean("logProxy4");
timeBookInterface.doAuditing("zhang san ");
guoqiangone 2008-01-25
  • 打赏
  • 举报
回复
抛出的异常表明向方法传递了一个不合法或不正确的参数。

TestApp看看吧
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
处理方法我有的阿
public class LogThrow implements ThrowsAdvice {
private Logger logger = Logger.getLogger(this.getClass().getName());
public void AfterThrowing(Method method, Object[] args, Object target, ServletException subclass) throws Throwable {
logger.log(Level.INFO,"shen he shu ju you yi chang...");
}
public void AfterThrowing(RemoteException ex) throws Throwable {
logger.log(Level.INFO,"shen he shu ju you yi chang...");
}
}

我在网上和书上查了很多遍
ThrowsAdvice 是一个没有方法的接口
我查了很多的资料都不行的
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
没搞错把
是太难了还是嫌分太少了
csdn没这么现实把
qixueqi 2008-01-25
  • 打赏
  • 举报
回复
问题解决
原因:AfterThrowing首字母被大写了
虽然问题还是我自己解决的
不过还是感谢几位的热心
现在好多人啊
就是来逛逛
看笑话的
就是不解决问题
imA 2008-01-24
  • 打赏
  • 举报
回复
提示的不是很清楚嘛,就是你的com.gc.action.ExceptionHandler中至少要有一个处理方法

至于你这个类是什么内容,那就需要你自己解决了

67,513

社区成员

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

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