one*_*ack 8 java inner-classes
我在Linux Red Hat上使用sun/oracle JVM 1.6_23在VMWare服务器中运行此代码.
有些时候,JVM似乎无法访问我的匿名内部类.
我的classpath很好,因为它可以工作一段时间.
我得到的只是这样的错误:
java.lang.NoClassDefFoundError:com/mycompany/impl/MyClassImpl$1atcom.mycompany.impl.MyClassImpl.markAsDeletable(MyClassImpl.java:45).
第45行是下面的第一行,它无法找到我的新谓词
DomaineVO domaineVO = Iterables.find(domainesVO, new Predicate<DomaineVO>() {
@Override
public boolean apply(DomaineVO input) {
return input.getId().equals(domaine.getIdentifier().toString());
}
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
最后,我认为我们可能已经找到了问题所在。
我们在 jetty 上运行此代码,并使用 .war 文件的自动部署。默认情况下,jetty 使用 java.io.tmpdir 来部署 .war 文件。
我们的问题只出现在 Linux 上,而且大多是在清晨(当第一个办公室工作人员使用该应用程序时)。
原因是晚上清理 /tmp(由我们服务器上的 LOGROTATE 命令执行)。
经验法则:永远不要使用 /tmp 太长时间,并让 jetty 将 war 部署在您自己的目录中。
感谢大家
| 归档时间: |
|
| 查看次数: |
6121 次 |
| 最近记录: |