java.lang.NoSuchMethodError:存根类初始化失败

时间:2014-11-18 00:53:39

标签: java eclipse tomcat rmi

我正在开发一个使用 Eclipse Juno ver - 1.5.0 的Web应用程序,托管在 Tomcat 7.0 上。此外,该应用程序还使用远程方法调用。

在代码中进行更新后,我清理了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或某些配置问题有关。

谢谢。

1 个答案:

答案 0 :(得分:0)

项目迁移到另一台计算机时问题已解决。显然,错误与RMI相关的错误无关。虽然,错误的原因以及为什么即使在重建项目后它也没有解决,但仍然未知。