In GAE how do you *stop* running your app? - eclipse

I'm on Eclipse (Helios) using GAE SDK 1.5.2, etc. (Just updated everything, today.)
"In the old days..." (earlier SDKs), when I ran/debug my app locally, it would create an app on my machine (Mac, OS-X 10.6.latest) and, when I wanted to quit it, I would just CMD-Q that app.
Now, when I launch the app, it appears to run as a sub-process of Eclipse (assumption on my part -- I can't find any separate app that's running), and I can't seem to figure out how to quit the app.
The specific problem I'm having is, after I change something and select Run -> Debug as... -> Web Application the 2nd time, I get "address in use" socket-binding error.
[ERROR] Unable to bind socket on port 9997 -- is another session active?
java.net.BindException: Address already in use
I suspect that, yes, another session IS active (the one I started just 2 minutes ago!), and my question is: how do I stop that session?
Thanks!

If you look in the debug window you'll see your running processes. Just select one, right click and 'Terminate':

Related

How to kill debugging session in Eclipse? Nothing shown in Debug view

I have 2 versions of my app deployed on the cloud. They both have same address, but different cloud instance names.
I am able to debug one application from cloud, but when I try to connect to the other one, eclipse gives the error:
Error launching a Cloud Debugging Session.
Server returned 409 (Conflict) for URL: 'address'
Another debugging/profiling session to this application seems to be active.
There is no sessions available in Debug view. I even restarted eclipse and my machine.
Is there a way to kill all/any debugging/profiling sessions in eclipse?
I was able before to switch debugging from one cloud app to the other but today I get this issue.

Restart Eclipse application

How can I restart an application in Eclipse through a socket call?
I built an error diagnosis app which can checks what code should be changed to handle the error, but after the change I have to restart the app again. I already have developed a plugin for Eclipse which would take care of this, but I am not sure on how to restart the app.
1.) Is there an internal Eclipse command to restart the app?
2.) Do I have to use a command shell (which I wouldn't prefer)?
Hope someone can help me or give me some guidance. Also I know that there is a possibility to restart an app for debugging, but I want to run the app without debugging.
If you mean you have an Eclipse 3.x style RCP application and you want to restart the RCP from an Eclipse plug-in then you just do:
PlatformUI.getWorkbench().restart(true);
which restarts the RCP using the current workspace.
For an e4 RCP you do:
#Inject
IWorkbench workbench;
workbench.restart();
#greg-449: Thanks for your respond, but what I am trying to achieve is a bit more complex. Consider the following, I have a service that runs on another machine in my company network. It turned out something wrong is going with this service. So you can connect with with a remote debugger to the server and can check with the source code, that you have on your local machine, what is going on. I would say the classic Remote Debugging in Java.
But when you have fixed the error in the code you also have to restart the service on this other machine somewhere in the network. The question is how to do this? By a shell command which gives you the instances on this machine where the service is running or is there some other possibility?
Hope this helps more to understand the problem.

Eclipse IDE remote rebug and remote edit a legacy webapp

I am in a bind here, what's happening is I have a legacy webapp which uses an in-memory database. The app requires 64GB of RAM just to launch and it takes at least 30 minutes to start.
I have to make updates/fixes to this application. Obviously it is impossible to launch it on my PC so everything has to be done on the server. I have considered setting up an Eclipse IDE on the Linux server where this app runs, but that introduces a set of new issues. I really would like to continue using my PC's Eclipse IDE and make edits to the app.
I am able to use the remote debugging capabilities of Eclipse IDE and launch this app from the linux server no problem. However this is not enough. After I make an edit, I need to be able to save/compile the file, and load this change into the server relatively quickly. I can't wait 30 minutes every time I make some updates to the app.
Can anyone recommend ideas on what to do in this scenario? Ideally I would love to be able to launch the app in DEBUG mode inside the Linux Eclipse IDE on the server and connect to this instance using remote debugging from my local/Windows IDE. I would like to make changes in my Windows Eclipse IDE and then quickly copy the files over to the linux server, pick them up in the Linux Eclipse IDE, compile them in the Eclipse IDE instance running in debug mode, and effectively "hot swapping" the changes, thereby avoiding the need to wait 30 minutes for the app to start back up... However when I try to do this, there is a caveat... I can't seem to be able to launch the webapp in Linux Eclipse IDE in both DEBUG mode and also remote-debug-connect to it, the error I am getting in Eclipse is:
"Cannot load this JVM TI agent twice"
I get what is going on: the local debugger is launching tomcat with the -agentlib:jdwp parameter and on top of it, I am trying to force it to also start up with the same arguments and so it complains, but is there some way to trick it into allowing me to remote connect into this debug session from my Windows server?
I managed to solve this issue by updating Tomcat's context.xml to support reloadable mode:
<Context reloadable="true">
And in the app to set it to reloadable in WEB-INF/web.xml:
<web-app reloadable="true">
Now I am able to make edits in my local windows Eclipse IDE, Save them, and they automatically get updated on the server side.

Debugging a GWT application in a remote environment

I have deployed my GWT application to its target environment (i.e. compiled and copied the war directory contents to the target device's /var/www) and some parts of it are not working. I understand that I can debug my local instance of the GWT app as if it were running in the target environment, by opening the deployed GWT App URL and adding gwt.codesvr URL parameter to it, like this:
http://deployment_host/gwtapp.html?gwt.codesvr=localhost:9997
I get
Plugin failed to connect to Development Mode server at localhost:9997
Follow the underlying troubleshooting instructions
My Chrome browser is running on the same machine as Eclipse, so localhost above should be ok. Just to make sure, I've added -bindAddress 0.0.0.0 in the Run/Debug configuration in Eclipse and tried with my external IP/hostname, with no change, except that the error message is updated accordingly. What am I doing wrong?
If I replace deployment_host with localhost above everything works fine, but it's of no use to me to debug locally. (There is some Proxy and ReverseProxy-ing going on in the local Apache, so I do not need the 8888 port when running locally, but this should be unrelated)
Questions Debugging GWT applications outside of dev mode? and Debug GWT application in a remote browser are related but do not help.
If you are using chrome, look in the address bar at the right for a grey GWT icon. In any other browser, you would see a popup message confirming that you want to debug, but in Chrome this apparently isn't possible.
Click the icon, and it will ask you to whitelist this site as allowed to run Java locally on your computer. After you whitelist it, it should run correctly.
Along the same lines as the answer above Ive just had some success restarting the extension helped (but restarting browser hadnt)
Just enable and disable it in :
chrome://chrome/extensions/
Good luck! It's the only thing wrong with GWT imho...

ClickOnce application won't start up under a given profile

This issue has come up three times in our environment. After installing the ClickOnce application, I expected it to startup automatically (as I have it set to do after install completes), but it did not.
I try running the application from the shortcut, and it brings up the "Launching Application" dialog, but then immediately closes and the application is not started. It's acting as if another instance of the application is currently running (I have it set to only run one instance at a time).
This issue is profile-specific. Installing it on the same machine using a different profile runs just fine, but for whatever reason, no amount of uninstalling, reinstalling, and restarting the computer seems to fix a profile once it runs into this problem.
Our current fix for this is to completely delete the profile and "reload" it. I'd really like to know what the actually problem is though, being that we've run into it three times now.
Some other information that may be of use:
This application was originally deployed using Windows Installer (MSI). I uninstalled the application from the Add/Remove Programs prior to installing the newer ClickOnce version.
These users were previously part of local administrators group (while running the MSI version). Their privileges have since been lowered to "standard user".
Do you have any logging at startup that shows exactly what the application is doing, so you can tell where it's crashing?
The user doesn't have Kensington mouse software installed, do they? There is a known conflict there, the symptoms of which are exactly as you report -- the user clicks the shortcut to start the application, it updates, and then does nothing.
I was able to fix those installations by creating a new certificate for the app. It appears this issue had to do with the certificate reaching its expiration date.
Instead of deleting the profile try this:
Log onto the PC as an admin
Delete/rename C:/Documents and Settings/(UserCorpID)/Local Settings/Application Data/Microsoft/Windows/UsrClass.dat file