Обновление Java 1.6.0_26 вызывает исключение SOAP - NoClassDefFoundError: Не удалось инициализировать FastInfosetReflection - PullRequest
1 голос
/ 23 июня 2011

У меня есть апплет, который делает SOAP-запрос к веб-службе. У него нет сертификатов или особых соображений безопасности, только базовый апплет и веб-сервис. После обновления Java на нескольких компьютерах до 1.6.0_26 я могу без сомнения сказать, что обновление вызывает следующее исключение. (Предыдущие версии Java все еще работают)

com.sun.xml.internal.messaging.saaj.soap.MessageImpl saveChanges
SEVERE: SAAJ0540: Error during saving a multipart message
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Error during saving a multipart message
at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(Unknown Source)

...

java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.messaging.saaj.util.FastInfosetReflection
   at com.sun.xml.internal.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.soap.impl.EnvelopeImpl.output(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.soap.impl.EnvelopeImpl.output(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getContentAsStream(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getHeaderBytes(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.saveChanges(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(Unknown Source)
   at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(Unknown Source)

Кто-нибудь знает, что вызывает это, или есть какие-то обходные пути?

При необходимости у меня есть более длинная трассировка стека исключений, которую я могу отправить.

Спасибо.

1 Ответ

1 голос
/ 23 июня 2011

Это было от http://java.net/node/701033


Я должен был узнать, что мне нужно подписать ВСЕ файлы .jar, которые использует апплет И все они должны быть подписаны одним и тем же сертификатом (т. Е. Даже если библиотечные файлы, которые я использовал, были уже подписаны - но другой подписью полномочия - мне нужно было переподписать их тем же сертификатом, который я использую для подписи основного фляги апплета). После этого апплет теперь нормально запускается и не пытается получить доступ к каким-либо недопустимым системным свойствам, а также не пытается найти пропущенный класс, избегая, таким образом, этих исключений.

Я не уверен на 100%, является ли это предварительным требованием или нет: в процессе попытки запустить этот процесс я также перешел на самую последнюю версию Java 6 JRE (то есть для Sun JRE, это 1.6.0_17, для IBM JRE, которая будет 1.6.0sr7).

Благодаря этим обоим шагам мой апплет теперь работает нормально, используя SOAP для связи с сервером, и это происходит с обоими упомянутыми JRE.

НТН,

Michael

...