我试图通过IntelliJ调试在WebSphere Liberty Profile上运行的远程应用程序。
我可以在自己的代码中设置断点 - 这些断点在边距中显示一个复选标记并且正常工作。
我遇到的具体问题是java.io.ObjectInputStream
。当我在流上调用readObject()
时,它会抛出异常。我想知道更多关于我的流的哪个特定部分是坏的,所以我右键点击了readObject()
并选择了Go To
> Implementation
,并尝试在此方法中设置一些断点。
当我运行调试器时,这些断点通过断点显示X而不是复选标记,并且此消息显示在工具提示中:
Warning: No executable code found at line 603 in class java.io.ObjectInputStream
但是该行显然有这个代码:
return Class.forName(name, false, latestUserDefinedLoader());
所以我真的很困惑为什么我收到此错误消息。
有关如何在java.io.ObjectInputStream
内有断点或者在抛出异常之前看到某些值被反序列化的任何建议将非常感激。
答案 0 :(得分:3)
当您正在查找的源代码版本与远程JVM上运行的版本不同时,通常会发生这种情况。在IntelliJ的标题栏中查找jar的版本,并验证它与Websphere上的jar相同。