java - 没有这样的方法错误: skipInputBytes

标签 java scala playframework playframework-2.1 javax.imageio

我在 JPEG 上传时遇到这个奇怪的异常。 PNG 效果很好。

play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchMethodError: skipInputBytes]]
    at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.1]
    at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4$$anonfun$apply$28.apply(PlayDefaultUpstreamHandler.scala:403) [play_2.10.jar:2.1.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4$$anonfun$apply$28.apply(PlayDefaultUpstreamHandler.scala:403) [play_2.10.jar:2.1.1]
    at scala.Option.map(Option.scala:145) [scala-library.jar:na]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4.apply(PlayDefaultUpstreamHandler.scala:403) [play_2.10.jar:2.1.1]
java.lang.RuntimeException: java.lang.NoSuchMethodError: skipInputBytes
    at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:222) ~[play_2.10.jar:2.1.1]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:109) ~[play_2.10.jar:2.1.1]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:109) ~[play_2.10.jar:2.1.1]
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10.jar:2.1.1]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:108) ~[play_2.10.jar:2.1.1]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:106) ~[play_2.10.jar:2.1.1]
Caused by: java.lang.NoSuchMethodError: skipInputBytes
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.initReaderIDs(Native Method) ~[na:1.7.0_15]
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:91) ~[na:1.7.0_15]
    at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:85) ~[na:1.7.0_15]
    at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:320) ~[na:1.7.0_15]
    at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:529) ~[na:1.7.0_15]
    at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:513) ~[na:1.7.0_15]

我什至不知道它在我的代码中到底发生在哪里。有什么想法吗?

最佳答案

我对此进行了一些调查。和你一样,我也安装了 1.7.0_15。 JPEGImageReader 随 JDK 一起提供,所以我检查了源代码。 skipInputBytes 方法不存在。然后我安装了JDK 1.7.0_21,这里的方法包含在JPEGImageReader中。

因此,您只需安装新的 JDK,或者配置您的 IDE 以使用它(如果您已经安装了它)。

关于java - 没有这样的方法错误: skipInputBytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16229383/

相关文章:

css - 在 CSS Play 框架内访问 Assets

java - 尝试在 Play Framework 中使用简单例份验证,但我的操作被调用两次

json - Play Framework : type mismatch JsValue/JsValueWrapper

Java 国际化 - 我是否必须为每个类加载资源包?

java - 通过 ChoiceRenderer 在 Wicket DropDownChoice 中显示两个字段

scala - Liftweb 映射器 - 以小写形式设置表名

scala - 十六进制文字、编译器错误或写得不好的规范?

java - 从 Java 调用 python 函数的不同/更好的方法

java - 在 eclipse 中获取目标运行时服务器 : plugin development

scala - 如何编写与数据库无关的 Play 应用程序并执行首次数据库初始化?