This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I moved to a new team, and I found out they don't use the Eclipse debugger (just debug statements). No one on my old team knows how the debugger got set up, and I tried copying a few arcane lines from several startup files with no success. Then I tried following the simpler instructions here:
It seems like it should just work. However, when I go to the debug dialog in Eclipse and click New under Remote Java Application, I can put in all the info, but when I go to select the Project, nothing appears (there's nothing to select!). I'm already in the project in Eclipse and I just go to the Debug perspective--there are files open and everything. Does something need to be turned on in an Eclipse project to make it debuggable?
Well without trying to figure out exactly what your situation is I thought I would post some of the things I have found in the past.
Debugging in eclipse use WL.
Well firstly I have only ever done this when I was controlling the WL server through eclipse. (rather than just running the server on its own)
Needless to say its important to make sure that the code you are debugging on WL is the same as what you are looking at in eclipse so I usually publish before starting the server or attempting to step through the code.
In eclipse where you set up the server (so eclipse knows what server to control) you should make sure that the server is running in debug mode.
I have sometimes had problems with eclipse switching to debug perspective (esp when my computer is all bogged down with stuff) and so I usually manually move to debug mode.
Anyway, this is all I have ever done to be able to debug using WL. The real key is making sure that eclipse is starting WL in debug mode.
There are 2 ways to debug web application servers (like Tomcat and Weblogic) in Eclipse, although underneath, they're the same way - remote debugging. One is by explicit remote debugging, and the other is by integrated local debugging, which is simply remote debugging where Eclipse automatically does the remote debugger connections itself.
Every JVM has the ability to operate in debugging mode. But there's a catch. The target JVM (the WebLogic server) has to be STARTED in debugging mode. That means that when the JVM first launches, it is notified that it needs to open a specified network port that Eclipse (or any other Java debugger) can use to communicate with it.
When you launch the server directly from Eclipse, this stuff is normally done for you. When you launch manually, you have to make sure that the Eclipse debugger knows what port to use and has been explicitly made to connect on it.
The other "gotcha" is that the debugger is going to step through code on the target JVM, but the source files have to be visible to the Eclipse itself. If your source files aren't in sync with the class files - meaning that the target machine's classfiles aren't identical to what you'd get if you compiled the source on the Eclipse machine - the debugger will act oddly, since, in effect, it's driving down one road while using a map of another road for navigation.
An IDE is no substitute for an Intelligent Developer.
This is very useful. I have a similar usecase. These are the salient features:
1. WebLogic is configured to start in debug mode, a port has also been specified. 2. Eclipse is configured to Remotely Debug the WL application on the specified port
However, the code is compiled using an ant script (on the same machine that has eclipse). Eclipse has all the source, and uses a different compiler from the one that the ant script uses.
You made a note about going down a road with a different map. Would it be fair to say that, even though the source is exactly the same, having different compilers for what is running in WebLogic and what Eclipse is using might cause a mismatch when debugging?