图片压缩功能在JBoss AS7出错问题
近日在为平台(http://www.zyiqibook.com)做些小的整改,途中基本很顺利,但就在后面出现了些纠结的问题,而这问题我之前遇到过,因为一时没有想起来,又浪费了不少时间。现在正式把这问题记录下来,作为技术积累,往后就可以很好的处理类似的问题。

网 站的开发是在Eclipse中进行的,为了开发测试方便,安装了Jetty作为服务器,可以边开发边调式项目。我为平台添加一个相册艺廊模块,包含图片上 传、压缩、分页等功能,因为之前在同学朋友版块开发过班级相册功能,我有类似的经历,就把那个班级相册移植过来了(班级相册只在圈子里可见,相册艺廊则所 有人员可见)。需要说明的是后台图片压缩用到了com sun image codec jpeg JPEGCodec这个类,Eclipse中研发的比较顺利,调式也都通过,于是我需要把新功能更新到生产环境。

项目更新,需要把项目打 包,从本地上传到远程服务器,因为项目比较大,上传需要一定时间,为确保一次性更新,不出错,我把打包好的项目部署在本地的JBoss上面做最后一次测 试。系统正常跑起来后,不幸的是相册艺廊模块却出现bug了,图片上传失败。这种情况挺不好对付的,开发时正常,部署后却出错,现在想想,当时自己定位这 个问题的能力不是很好,导致拖了一段时间。要相信代码没有问题,是项目运行环境的问题,开发时用Jetty,现在用的是JBoss,那就得从服务器下手。 因为项目中我对异常做了封装,优化用户体验,界面提示的只是相片上传失败,控制台也没有打印错误信息(之前改了服务器配置导致的)。当时我返回开发环境再 走一遍检查代码,图片上传功能正常;后来才想到换一个Jboss部署看看,换了之后上传相片,Jboss控制台就显示了很明显的错误信息:Caused by: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec
这个问题我不是之前遇到过吗,项目刚上线,整的图片上传就是这问题,呵呵。这个是因为JBoss服务器而导致的,好像是后台对图片进行压缩的类JPEGCodec已经过时了,具体的就不清楚了,需要对JBoss配置文件做一些修改,问题即可解决。
在 新版Jboss as中,修改\modules\sun\jdk\main目录下的module.xml,在<paths>标签末尾加上<path name="com/sun/image/codec/jpeg"/>就可以了,至此,图片上传、压缩功能在Jboss环境中就正常了。

附 录:还有一个问题,页面、Struts我都配置了UTF-8编码,可是图片上传时,假如遇到中文文件名的图片,还是上传失败,是乱码导致的问题(英文命名 的图片上传没有问题)。中文命名的图片问题还被一个同学在使用系统时提出过,之前一直没有时间去想,所以就没去解决。在图片压缩上传问题解决后,给了我灵 感,所以也解决了中文文件名相片上传的问题。服务器Jboss的编码也需要配置声明,只有页面、服务器、系统都编码统一,才不会出现乱码。Jboss as修改编码的方式如下:
修改\standalone\configuration下面的standalone.xml文件,在<extensions>标签后添加以下配置即可,如:
<extensions>
......
</extensions>
<system-properties>
        <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
        <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>

[转]图片压缩功能在JBoss AS7出错有关问题的更多相关文章

  1. Nginx开启gzip压缩功能

    在Nginx安装完成之后,我们可以开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩.下面的指令为开启Gzip的指令: gzip on; gzip_http_versi ...

  2. C#图片压缩处理

    近期在做相冊功能遇到一个问题,就是载入图片的时候然后放大,感觉有点卡.图片可能有点大,所以考虑用缩略图来实现. 也就是在查询出来一个相冊图片  ,一页显示几十张,这几十张用缩略图来显示,看相信情况的时 ...

  3. android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩

    android-xBuild 是一项集成了apk差分与合成,zip差分与合成,lua打包.apk打包,png/jpg图片压缩五大功能的开源项目 (github地址:https://github.com ...

  4. 每个人都要学的图片压缩终极奥义,有效解决 Android 程序 OOM

    # 由来 在我们编写 Android 程序的时候,几乎永远逃避不了图片压缩的难题.除了应用图标之外,我们所要显示的图片基本上只有两个来源: 来自网络下载 本地相册中加载 不管是网上下载下来的也好,还是 ...

  5. (转)Android学习-使用Async-Http实现图片压缩并上传功能

    (转)Android学习-使用Async-Http实现图片压缩并上传功能 文章转载自:作者:RyaneLee链接:http://www.jianshu.com/p/940fc7ba39e1 让我头疼一 ...

  6. 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)

    涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...

  7. JBoss AS7 快速配置

    作者:MinUnix  原文出处:http://www.minunix.com/2013/08/jboss-as7-01/  如需转载请注明出处! 文档下载:http://www.minunix.co ...

  8. PhpStudy如何开启Apache的gzip压缩功能?

    要让apache支持gzip功能,要用到deflate_Module和headers_Module. 打开apache的配置文件httpd.conf,大约在105行左右,找到以下两行内容:(这两行不是 ...

  9. ZH奶酪:PHP图片压缩(TinyPNG在线API)和(使用Imagick扩展)

    1.调用TinyPng网站提供的API 1.1.须知 (1)tinypng的官网:https://tinypng.com/ 不知道国内访问会不会很慢,在Singapore打开这个网站很流畅: (2)A ...

随机推荐

  1. 312-金胜维 P系列2.5寸 480G SATA3 SSD固态硬盘

    金胜维 P系列2.5寸 480G SATA3 SSD固态硬盘 一.概述     P系列为KingSpec金胜维针对入门级消费群体推出的一款高性价SSD固态硬盘,采用7mm超薄金属冲压外壳,板载优质TL ...

  2. Linux系统理解以及Linux系统学习心得

    原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Lin ...

  3. Java打印流学习

    打印流 打印流的主要功能是用于输出,在整个IO包打印流分为两种类型,打印流可以很方便的进行输出. 1.字节打印流:PrintStream(在字节输出时,可以增强输出功能) 2.字符打印流:PrintW ...

  4. nuget cli 打包发包

    微软官网打包说明:https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-visual ...

  5. sql语句中取整数和小数部分

    sql 取整数去小数点 ,) ' Sql截取浮点小数位数,不四舍五入 ,) 结果:551.24 ,) 结果:551.23 第一个2表示截取2位 第二个0,1分别表示0是四舍五入,0以外是截取 如何分别 ...

  6. Codeforces 803F - Coprime Subsequences(数论)

    原题链接:http://codeforces.com/contest/803/problem/F 题意:若gcd(a1, a2, a3,...,an)=1则认为这n个数是互质的.求集合a中,元素互质的 ...

  7. flutter网格布局之GridView组件

    前面总结了使用ListView来实现列表,但是,有的时候,数据量很大,需要使用矩阵方式排列才能更清晰的展示数据,在flutter中,可以使用网格列表组件GridView来实现这个布局. GridVie ...

  8. 全面质量管理体系运转的基本方法 PDCA

    PDCA管理循环 PDCA循环作为全面质量管理体系运转的基本方法,其实是需要搜集大量数据资料,并综合运用各种管理技术和方法.全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是 ...

  9. tracert命令 -网络管理命令

    Tracert是路由跟踪程序,用于确定 IP 数据报访问目标所经过的路径.Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由. 在工作 ...

  10. Alex and Number

    Alex and Number 时间限制: 1 Sec  内存限制: 128 MB提交: 69  解决: 12[提交][状态] 题目描述 Alex love Number theory. Today ...