gpt4 book ai didi

java - 如何更正 Java LinkageError 异常?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:35 26 4
gpt4 key购买 nike

我正在为使用 Java servlet 的 WebSphere 6.1 开发一个应用程序。在我的 servlet 中,我定义了一个序列号 vesion ID 1L。在部署和运行我的应用程序时,我收到了以下类型的 LinkageError(来自服务器日志):

[5/9/11 15:14:26:868 EDT] 0000001c WebApp        
E [Servlet Error]-[ManageRecordsConsumerServlet]: java.lang.Exception:
java.lang.LinkageError: LinkageError while defining class:
<redacted>.docindexupdate.batch.servlet.ManageRecordsConsumerServlet
Could not be defined due to: (<redacted>/docindexupdate/batch/servlet
/ManageRecordsConsumerServlet) class name must be a string at offset=2074
This is often caused by having a class defined at multiple
locations within the classloader hierarchy. Other potential causes
include compiling against an older or newer version of the class
that has an incompatible method signature.

我不确定是什么问题。我之前在定义串行版本 uid 之前看到过这一点,并认为通过定义它并保持一致, future 对类文件的更新将成功运行。在编译或部署到服务器期间没有错误。是否有可能旧版本的 servlet 缓存在 WebSphere 实例的某处(我目前只在我的开发机器上部署)?

 class name must be a string at offset=2074

行也很困惑。

最佳答案

我怀疑您有一个 jar 正在两个不同的类加载器中加载。我的意思是,您的 websphere 服务器在启动时会加载该 jar 或具有该 jar 的认可目录。您正在部署的 EAR 的库中也有该 jar。两者在运行时可能会发生冲突

我的建议是找出 ManageRecordsConsumerServlet 属于哪个 jar 并将其从您的 EAR 库或您的 Websphere 认可的库中删除(最好是您的 EAR 库)。

关于java - 如何更正 Java LinkageError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com