在今天项目上线部署的时候,出现了jxl使用出现报错,在开发环境(基于jboss服务器)下并没有出错。
报错信息如下:
java.io.CharConversionException: illegal utf8 encoding at 0xd0, cf at com.caucho.vfs.i18n.UTF8Reader.read(UTF8Reader.java:96) at com.caucho.server.connection.ToCharResponseStream.write(ToCharResponseStream.java:299) at com.caucho.server.connection.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:67) at java.io.OutputStream.write(OutputStream.java:58) at jxl.write.biff.CompoundFile.writeHeader(CompoundFile.java:615) at jxl.write.biff.CompoundFile.write(CompoundFile.java:454) at jxl.write.biff.File.close(File.java:104) at jxl.write.biff.WritableWorkbookImpl.close(WritableWorkbookImpl.java:431) at com.velcro.workflow.report.service.ReportService.createExcel(ReportService.java:1629) at _jsp._vworkflow._report._excelclient__jsp._jspService(_excelclient__jsp.java:83) at com.caucho.jsp.JavaPage.service(JavaPage.java:61) at com.caucho.jsp.Page.pageservice(Page.java:587) at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195) at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:293) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111) at com.velcro.workflow.report.servlet.ReportAction.execute(ReportAction.java:314) at com.velcro.base.ServiceAction.doGet(ServiceAction.java:64) at com.velcro.base.ServiceAction.doPost(ServiceAction.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:153) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662) at java.lang.Thread.run(Thread.java:619)
检查了一天,非常奇怪,就是在resin服务器(版本是3.1.9)下使用不正常,
根据报错的原因是第三方程序的问题导致,最后考虑很久,尝试着升级应用服务器,碰碰运气。
当我升级到版本pro-4.0.13的时候,启动成功后。再次使用jxl,惊喜的发现问题没有了,一切正常。
真是搞不懂!!!!!!(也许是resin之前的bug,在后面几个版本进行了修复吧)
嘿嘿嘿