SeekableStream поток безопасен? - PullRequest
       61

SeekableStream поток безопасен?

0 голосов
/ 06 октября 2011

У меня есть программа, которая должна изменить размер изображения.Когда я запускаю его один (звонок из JUnit), он работает нормально.Но когда я вызываю его из сервлета (на самом деле это Джерси в JUnit), он выдает следующее исключение:

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 голосов
/ 07 октября 2011

Вам нужно беспокоиться только о поточно-ориентированном объекте, если у вас есть ссылка на объект из двух разных потоков.Если это не потокобезопасно, у вас будут проблемы, когда два разных потока попытаются использовать объект одновременно.

Как уже отмечали другие, NoClassDefFoundError означает, что java не может найти класс, на который вы ссылаетесь, в вашем коде.

РЕДАКТИРОВАТЬ

JAI воняет для выполнения некоторых вещей.Библиотека, такая как sanselan может работать лучше для вас.

...