图片压缩功能在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. JetbrainsCrack-4.2-release-enc.jar 激活补丁包

    http://wangshuo.jb51.net:81/201904/tools/JetbrainsCrack_jb51.rar ps:这里提供jetbrainscrack-2.10.jar.jetb ...

  2. 二、jquery Try{}catch(e){}

    一.Try{}catch(e){} try{ $.each($("div"),function(i,item){ if(...){ throw("异常信息"); ...

  3. [HNOI2015]亚瑟王(概率dp)

    题面太长了就不复制了,传送门 一道做了还是很懵逼的题目,感觉以后碰到类似的还是不会,果然HNOI题目很皮. 题解传送 补充一下吧.//感觉他的博客已经写得很好了......Orz 需要的可以两边一起看 ...

  4. 02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录

    <MySQL实战45讲>02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录http://naotu.baidu.com/file/ad320c7a0e031c2d6db7b5a ...

  5. ZYNQ跑系统 系列(二) petalinux方式移植linux

    三.搭建petalinux工程 0.定位目录    先在shell中找一个准备存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO 1.定位编译链    根据安装p ...

  6. grep正则表达式(一)

    新建一批 txt 文件: [me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist ...

  7. C#-弄懂泛型和协变、逆变

    脑图概览 泛型声明和使用 协变和逆变 <C#权威指南>上在委托篇中这样定义: 协变:委托方法的返回值类型直接或者间接地继承自委托前面的返回值类型; 逆变:委托签名中的参数类型继承自委托方法 ...

  8. 【leetcode】416. Partition Equal Subset Sum

    题目如下: 解题思路:对于这种判断是否的题目,首先看看动态规划能不能解决.本题可以看成是从nums中任选i个元素,判断其和是否为sum(nums)/2,很显然从nums中任选i个元素的和的取值范围是[ ...

  9. Halo(八)

    安全模块 用户描述类 /** * 基本 Entity */ @Data @MappedSuperclass public class BaseEntity { /** Create time */ @ ...

  10. excel VBA 编程

    Dim cuttent_columns As Integer Dim care_repeat As Integer Private Sub Workbook_Open() Dim i As Integ ...