java项目在weblogic下运行报错 java.lang.ClassCastException求大神指点 weblogicjavajsp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当试图将对象强制转换为不是实例的子类时,抛出该异常。比如Object x = new Integer(0);System.out.println((String)x);我想一个正常的系统,报错肯定会影响某一部分的功能,楼主可以检查下代码所在的逻辑层,看看是否出现功能的缺失。。 对,是类型转换异常,但是在tomcat下一切正常!而且错误中所指的类型转换是将ServletRequest强转为HttpServletRequest为啥会出现这个异常? 在开发阶段,对应用程序热部署时,会抛出ClassCastException异常,这是因为类加载器的原因,因为在对程序热部署会由不同的类加载器加载同一个类,解决办法:重启weblogic或在console中WEB模块配置中对问题程序点击重新部署。。 代码如下:public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { if(response.isCommitted()) return; try { filterChain.doFilter(request, response); HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rep = (HttpServletResponse) response; HttpSession session = req.getSession(true); String contextPath = req.getContextPath(); RequestDispatcher dispatcher = null; 不是热部署的问题,每次都会编译重启weblogic的 这里的类型转换应该没问题filterChain.doFilter(request, response);是否应该放到 HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse rep = (HttpServletResponse) response;HttpSession session = req.getSession(true);String contextPath = req.getContextPath(); RequestDispatcher dispatcher = null;...的下面呢 其他的就更没问题了public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { if(response.isCommitted()) return; try { filterChain.doFilter(request, response); HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rep = (HttpServletResponse) response; HttpSession session = req.getSession(true); String contextPath = req.getContextPath(); RequestDispatcher dispatcher = null; //调用这个方法将skin放入session中 String skin = SkinUtils.getSkin(req, rep); req.setAttribute("skin", skin); // 检查用户登录信息 String uri = req.getRequestURI(); if(!NOFILTER_PAGES.containsKey(uri)) { log.debug("过滤检查【" + uri + "】"); // 取session,如果取不到session则提示用户重新登录 Object obj = session.getAttribute(Constant.SESSION_AUTH); if(obj == null) { log.error("过滤检查【" + uri + "】"+",未通过检查!没有登陆信息。"); String msg = ResourceUtils.getResource( "enp.WebMessage", "filter_nosession"); session.setAttribute("message", msg); dispatcher = req.getRequestDispatcher(contextPath + "/enpadmin/common/messages.jsp"); if (!rep.isCommitted()) dispatcher.forward(req, rep); } } else { log.debug("过滤检查被挑过【" + uri + "】"); } } catch (ServletException sx) { log.error("",sx); } catch (IOException iox) { log.error("",iox); } } 大家都来写上自己读过的有关 Java Web开发方面的好书 高手快进来救人呐! 请教一个TomCat与WEB-INF部署的问题? Tomcat使用连接池怎么回收没有关闭的连接??????? 一个请求连接超时怎么判断? 标志库的问题 中文字符无法插入数据库 简单的问题(新手),和上回是同类的 ,大家快来看呀!!(有代码) 如何判断动态产生的变量数值的合法性? 庆祝可用分过万 并且刚开始学习struts,把经过分享给大家 js异步调用和struts1 百度地图API有没获取城市列表的api,方便城市间的切换
比如Object x = new Integer(0);
System.out.println((String)x);我想一个正常的系统,报错肯定会影响某一部分的功能,楼主可以检查下代码所在的逻辑层,看看是否出现功能的缺失。。
对,是类型转换异常,但是在tomcat下一切正常!而且错误中所指的类型转换是将ServletRequest强转为HttpServletRequest为啥会出现这个异常?
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException { if(response.isCommitted())
return;
try {
filterChain.doFilter(request, response); HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse rep = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
String contextPath = req.getContextPath();
RequestDispatcher dispatcher = null;
filterChain.doFilter(request, response);
是否应该放到 HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse rep = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
String contextPath = req.getContextPath();
RequestDispatcher dispatcher = null;
...的下面呢
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException { if(response.isCommitted())
return;
try {
filterChain.doFilter(request, response); HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse rep = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
String contextPath = req.getContextPath();
RequestDispatcher dispatcher = null; //调用这个方法将skin放入session中
String skin = SkinUtils.getSkin(req, rep);
req.setAttribute("skin", skin); // 检查用户登录信息
String uri = req.getRequestURI();
if(!NOFILTER_PAGES.containsKey(uri))
{
log.debug("过滤检查【" + uri + "】");
// 取session,如果取不到session则提示用户重新登录
Object obj = session.getAttribute(Constant.SESSION_AUTH);
if(obj == null)
{
log.error("过滤检查【" + uri + "】"+",未通过检查!没有登陆信息。");
String msg = ResourceUtils.getResource(
"enp.WebMessage", "filter_nosession");
session.setAttribute("message", msg);
dispatcher = req.getRequestDispatcher(contextPath +
"/enpadmin/common/messages.jsp");
if (!rep.isCommitted())
dispatcher.forward(req, rep);
}
}
else
{
log.debug("过滤检查被挑过【" + uri + "】");
}
} catch (ServletException sx) {
log.error("",sx);
} catch (IOException iox) {
log.error("",iox);
}
}