Я работаю на веб-приложение, которое использует 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.
Очистите и перестройте все снова, и на этот раз остановите и перезапустите реестр. Также, пожалуйста, покажите команду 'rmic', которую вы использовали. – EJP
Я пробовал очистить и восстановить. Я даже удалил проект из затмения и снова импортировал. Точно так же я удалил его из и tomcat и повторно добавил и повторно опубликовал проект. То же самое для реестра RMI. Это не решило проблему. – asrp6
Для команды rmic: Я использовал javac * .java в папке src проекта сервера Затем я использовал: rmic trusteddataagg.TSDAVis Скомпилирован без пометок. Затем я переместил сгенерированный файл stub.class в каталог метаданных, указанный в вопросе. – asrp6