java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:4
85)
at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:395)
这个问题非常麻烦:
1.没有代码的错误堆栈,要是是开源的代码的问题,这个....
2.是个公共错误不好找啊.
通过网络检索,发现可能和struts2有关,但是具体什么关系没有找到。
非常郁闷,后来想通过debug想去找找具体出错的地方,结果发现有个地方直接就报no such method error,感到非常奇怪,编译都通过了还报错,后来才在控制台
发现了完整的错误堆栈,居然是struts2自带的antlr-2.7.2.jar有问题要换成一个antlr-2.7.6.jar,我晕。
这个包换了之后,那个莫名奇妙的问题终于没有了.
原来就是版本不对啊,这个太坑爹了,而且还是就是原配的包啊.
附包问题说明:
当在几种框架集成的时候,在调用HibernateDaoSupport中的某个方法时会出现:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 的错误。
这是因为在struts2自带的antlr-2.7.2.jar包的版本较低。
需要换成antlr-2.7.6.jar。
其实在项目中已经存在了antlr-2.7.6.jar这个包,现在唯一需要做的就是删除antlr-2.7.2.jar包。
选择windows---preferences---在文本框中搜索struts 2(中间有空格)---选择struts 2---选择antlr-2.7.2.jar---Remove---OK。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。