2014-11-18 4 views
0

Я работаю на веб-приложение, которое использует Eclipse, Juno вер - 1.5.0, размещенную на Tomcat 7.0. Кроме того, приложение также использует удаленный вызов метода.java.lang.NoSuchMethodError: заглушки инициализации класса не удалось

После обновления, сделанного в коде, я очистил каталог tomcat. Это привело к удалению нескольких существенных .class файлов из следующего каталога

.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/trusteddataaggwebsite/WEB-INF/классы

Очевидно, что восстановление проекта не восстановило удаленные файлы. Итак, я вручную восстановил отсутствующие файлы .class. Хотя одним из недостающих файлов был файл TSDAVis_Stub.class.

Как таковой, я перекомпилировал заглушку, используя команду rmic для создания заглушки. Но об исполнении я получаю следующее сообщение об ошибке

java.lang.NoSuchMethodError: stub class initialization failed 
trusteddataagg.TSDAVis_Stub.<clinit>(Unknown Source) 
sun.misc.Unsafe.ensureClassInitialized(Native Method) 
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25) 
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122) 
java.lang.reflect.Field.acquireFieldAccessor(Field.java:918) 
java.lang.reflect.Field.getFieldAccessor(Field.java:899) 
java.lang.reflect.Field.getLong(Field.java:528) 
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1614) 
java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52) 
java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425) 
java.security.AccessController.doPrivileged(Native Method) 
java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413) 
java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310) 
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547) 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582) 
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
java.rmi.Naming.lookup(Naming.java:84) 
ParaselectionServlet.doPost(ParaselectionServlet.java:128) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

Я понимаю описание кода немного расплывчато, но это было бы очень полезно, если бы кто-нибудь может пролить некоторый свет на

java.lang.NoSuchMethodError: stub class initialization failed 

Более конкретно, если эта ошибка связана с RMI или с некоторой проблемой конфигурации.

Thank you.

+0

Очистите и перестройте все снова, и на этот раз остановите и перезапустите реестр. Также, пожалуйста, покажите команду 'rmic', которую вы использовали. – EJP

+0

Я пробовал очистить и восстановить. Я даже удалил проект из затмения и снова импортировал. Точно так же я удалил его из и tomcat и повторно добавил и повторно опубликовал проект. То же самое для реестра RMI. Это не решило проблему. – asrp6

+0

Для команды rmic: Я использовал javac * .java в папке src проекта сервера Затем я использовал: rmic trusteddataagg.TSDAVis Скомпилирован без пометок. Затем я переместил сгенерированный файл stub.class в каталог метаданных, указанный в вопросе. – asrp6

ответ

0

Проблема была решена, когда проект был перенесен на другую машину. По-видимому, ошибка не имела ничего общего с неправильностью, связанной с RMI. Хотя причина ошибки и почему она не разрешилась даже после реконструкции проекта, пока неизвестна.

Смежные вопросы