SeekableStream线程安全吗?

时间:2011-10-06 19:03:17

标签: java image jersey inputstream

我有一个应该调整图像大小的程序。当我单独运行它(从JUnit调用)时,它工作正常。但是当我从一个servlet(实际上是JUnit中的Jersey)中调用它时,它会引发以下异常:

SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoClassDefFoundError: com/sun/media/jai/codec/SeekableStream

异常指向

SeekableStream seekableImageStream = SeekableStream.wrapInputStream(inputstream, true);

有没有人有任何修复?

在以下的某些反应之后澄清:

当我从JUnit调用该类时,它的工作原理如下:     ResizeMyImage.smallImage(imageFilepath,thumbnailWidth);

但是当我按下面的说法调用它时,我得到了错误:

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);

如果我从较大的程序中删除对ResizeMyImage的调用,则DefaultHttpClient ...也可以。感谢。

对以下内容的回应:如何验证GlassFish是否使用不同的JDK?

1 个答案:

答案 0 :(得分:0)

如果您从两个不同的线程引用了该对象,则只需担心对象是线程安全的。如果它不是线程安全的,当两个不同的线程同时尝试使用该对象时,你会遇到问题。

正如其他人指出NoClassDefFoundError意味着java无法找到您在代码中引用的类。

修改

JAI发痒做某些事情。像sanselan这样的库可能会更适合您。