【问题标题】:Java JPG codec won't workJava JPG 编解码器不起作用
【发布时间】:2014-08-01 16:41:33
【问题描述】:

我的 tomcat 应用程序有问题,在更改服务器并安装最新版本的 tomcat7 后,我的应用程序将无法读取/加载 jpg 文件..

我在服务器上安装了imageio和jai,尝试更改java版本但每次都出现同样的错误..

有人有想法吗?

Error: One factory fails for the operation "jpeg" 
Occurs in: javax.media.jai.ThreadSafeOperationRegistry 
java.lang.reflect.InvocationTargetException 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:606) 
        at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122) 
        at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674) 
        at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473) 
        at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332) 
        at com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:102) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:606) 
        at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122) 
        at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674) 
        at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473) 
        at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332) 
        at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819) 
        at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867) 
        at javax.media.jai.RenderedOp.getWidth(RenderedOp.java:2179) 

完整的错误日志可以在这里找到 -> http://paste.ubuntu.com/7653452/

更新:问题与名为 ImageTools 的 grails 插件有关

【问题讨论】:

  • 请发布整个错误信息
  • 什么版本的java?什么版本的 imageio?
  • @brett-okken:我尝试过 OpenJDK6 和 OpenJDK7,以及 Oracle JDK6 和 OracleJDK7.. ImageIO → libgtlimageio0.8
  • @max_meijer: 整个日志 → paste.ubuntu.com/7653452
  • Caused by: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException 你有一个类加载问题。某些 jar 丢失或可能需要在 tomcat/lib 中

标签: java tomcat grails grails-plugin jai


【解决方案1】:

如果您查看 JPEGImageDecoder 的代码,您会发现它在其导入中依赖于 com.sun.image.codec.jpeg.ImageFormatException

但是,com.sun.image.codec.jpeg was removed from Java 7 onwards.

问题很可能是 JAI 已经过时了,您必须使用 Java 6 运行时才能使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多