struts加了过滤器以后出现的错误,帮忙给看看:javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V

dd121011 2008-06-05 06:32:18
错误代码:
Error 500--Internal Server Error
java.lang.NoSuchMethodError: javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V
at com.ltd.blog.filter.CharEncoding.doFilter(CharEncoding.java:21)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6316)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
对应的过滤器代码:
public class CharEncoding extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}

//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
request.setCharacterEncoding("GBK");
filterChain.doFilter(request, response);
response.setCharacterEncoding("GBK");//这是第二十一行
} catch (Exception ex) {
ex.printStackTrace();
}
}

//Clean up resources
public void destroy() {
}
}
我用weblogic部署的,当把第二十一行给取消了的时候就没错了,当把第二十一行加进去的时候就出现了上面的错。。。估计是编码转换的时候出了问题,但是我不知道原因在哪儿,高手指点下。。。
...全文
521 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
cargo_arson 2011-04-01
  • 打赏
  • 举报
回复
版本太低,response.setCharacterEncoding("GBK");不支持 这个方法
胡矣 2008-06-06
  • 打赏
  • 举报
回复
没见过 按照KOOK_OKKO 说的试试吧
dd121011 2008-06-06
  • 打赏
  • 举报
回复
ha ..好的谢谢啊。。。我下一个。。。好慢。。
KOOK_OKKO 2008-06-06
  • 打赏
  • 举报
回复
解决方法升级weblogic9.0
dd121011 2008-06-06
  • 打赏
  • 举报
回复
啊。。。这样啊。。。。那怎么办啊。。。换vweblogic还是换servlet啊?
KOOK_OKKO 2008-06-06
  • 打赏
  • 举报
回复
weblogic8.1不支持servlet2.4,而javax.servlet.ServletResponse.setCharacterEncoding方法是 SERVLET 2.4 里才加进去的。
dd121011 2008-06-06
  • 打赏
  • 举报
回复
该怎么解决啊。。。我们看明白 。。。我是在weblogic8。1上部署的时候出现的问题。。。。
palm_civet 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 java2000_net 的回复:]
java.lang.NoSuchMethodError: javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V


我怀疑你的 tomcat 版本是不是太低了啊? 难道是 4.X的?甚至 3.X的?

更新到 5.5.X 吧!
[/Quote]


java.lang.NoSuchMethodError: javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V

反射时候发生的错误

就是版主说的问题
dd121011 2008-06-06
  • 打赏
  • 举报
回复
交换顺序以后还是不行啊。。。错误行还那行,只不过从二十一变成二十了。。。
错误代码:
java.lang.NoSuchMethodError: javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V
at com.ltd.blog.filter.CharEncoding.doFilter(CharEncoding.java:20)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6316)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
能给解释下错误的原因和1楼做法的原因吗?
dd121011 2008-06-06
  • 打赏
  • 举报
回复
我的tomcat是5。5版本的啊
tomcat没问题是在weblogic上部署的时候出的问题
zidasine 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yirentianran 的回复:]
没见过 按照KOOK_OKKO 说的试试吧
[/Quote]
老紫竹 2008-06-05
  • 打赏
  • 举报
回复
java.lang.NoSuchMethodError: javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V


我怀疑你的 tomcat 版本是不是太低了啊? 难道是 4.X的?甚至 3.X的?

更新到 5.5.X 吧!
zhj92lxs 2008-06-05
  • 打赏
  • 举报
回复
1楼正确
KKK2007 2008-06-05
  • 打赏
  • 举报
回复
Shine_Panda 2008-06-05
  • 打赏
  • 举报
回复
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");//这是第二十一行
filterChain.doFilter(request, response);

顺序交换下试下看。。。。。

67,512

社区成员

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

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