Debugging a GWT application in a remote environment - eclipse

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...

Related

GWT 2.7 Super Dev Mode not working while testing on the same network

I recently began using GWT 2.7 in Eclipse Luna and I was running my projects seamlessly while testing them in localhost:8888, the thing is, when I tried to test them (any of them, even a new app with only the autogenerated content) with another device on the same local network using (pc running eclipse ip):8888 I get a message like this:
The page at (ip):8888 says: Couldn't load (app) from Super Dev Mode server at http://(ip):9876. Please make sure this server is ready. Do you want to try again?
This also happens when I try to access to the app in the pc running eclipse with (its own ip):8888.
I've checked these four similar questions, but they didn't have any really helpful answers, these are a few things I've tried or discovered already:
I enabled the 9876 port on the firewall
I've deleted the .nocache.js and .devmode.js so that they're generated again
I noticed that when this problem occurs it's because the browser can't get the (ip):9876/recompile-requester/(app) file
I tried deploying the app to GAE and it doesn't work there either, nothing that happens on the modules Java code runs (And for some reason, I get a "Uncaught java.lang.ClassCastException" message on the chrome console, but this only happens on the deployed version, it doesn't happen on localhost:8888 or in (local ip):8888)
But nothing has worked and the four questions I mentioned are pretty much the only things related to this I've found, so I really don't know what else to try.
As Thomas pointed out, the problem I had was that from GWT 2.6 onwards, if you want to test from other devices in the same network, you have to whitelist the addresses you'll be using in each *.gwt.xml file using a command line like this:
<set-configuration-property name="devModeUrlWhitelistRegexp" value="http://(localhost|127\.0\.0\.1|192\.168\.150\.(\d{1,3}))(:\d+)?/?.*" />
I also had to add a -bindAddress 0.0.0.0 attribute to the run config for it to work.

Worklight application builder hang

I am using worklight 6.1.0.1 on Eclipse Kepler. As per the screen shot below, it hangs when I open the eclipse, with message saying "Worklight application builder". It takes forever to complete.
How do I resolve this issue ?
try to start eclipse with the -clean option on command line
The issue could be network related. If using a proxy server in eclipse make sure that is not enabled. This will try to route traffic through your proxy server. The other issue could be a firewall issue either locally or elsewhere. The application deployer routes out through the network to your workstation and does not use localhost. I have yet to find a way to change this setting.

Super Dev Mode on a remote server

The project I work at is quite specific. We use GWT with SAP backend. We run the Dev Mode using the following configuration (as program arguments; I run the project directly using IntelliJ IDEA)
-noserver -logLevel INFO -startupUrl http://server-url:8000/aaa -whitelist ^http[:][/][/]server-url[.]eu[:]8000/aaa com.company.project.main.Main
Note, we didn't use a local server (-noserver).
After familiarizing myself with the Super Dev Mode, I understood, that it works similar to GWT Web Mode, i.e. it compiles JavaScript (the folder to compile to can be specified) and then runs the code server with that script hosted.
Due to the specifics of the project, the compiled JavaScript is deployed to the remote server using maven via WebDav. So simply specifying -workDir as a parameter will not deploy the scripts on the remote server. Nor can we run (at least at the moment) a Java server on the server-url address.
Can we use the Super Dev Mode in this situation?
Yes you can.
EDIT 2016-11-27: I built a devserver that can use -launcherDir-style SuperDevMode without the need to write to the server, by using a webpack-like proxy: https://github.com/tbroyer/gwt-devserver
EDIT: there are a few issues re. deferred-binding properties. The recommended use of SDM (since GWT 2.7) is to use -launcherDir which means using a local server.
SuperDevMode works much like DevMode with -noserver, which means you have to deploy your app at least once to your server. In the case of SuperDevMode, it means you have to compile and deploy with the xsiframe linker and devModeRedirectEnabled property set to true.
Then you run SuperDevMode on your machine, create your bookmarklets if not done already, load your app from the remote server and click the Dev Mode On bookmarklet.
This will store something in the browser's sessionStorage so that reloading the page will now load the permutation from the SuperDevMode running on your machine rather than the remote server.
More info about how SuperDevMode works: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/
For now, I see only one possible solution, which is to run the gwt-codeserver.jar somehow on the SAP server (with the address, say, http://server-url:8000/bbb) and write a servlet, that will redirect all requests to http://server-url:8000/aaa. However, this is not very easy to implement. The SAP server has "tricky" authentication mechanism, where user first sees the logon page and then they are redirected to a generated session-specific URL.
Other ideas are very welcome.

GWT: Running the development mode code server (from Eclipse)

i am only start learning GWT by following their tutorial on https://developers.google.com/web-toolkit/doc/2.1/tutorial/create
On that page, when i reach the heading Running the development mode code server (from Eclipse), i copied the generated url http://127.0.0.1:8888/StockWatcher.html?gwt.codesvr=127.0.0.1:9997 to my browser.
It eventually times out, says page not loading...the plugin page did not show up initially, so i manually installed the plugin...but it still times out...
On the screen, it says...
===============================================================================
The connection was reset
The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer's network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web
==============================================================================
Am i missing any configurations etc?
Thanks very much in advance
It still looks like your browser is missing the GWT developer plugin. Try a different browser (preferably Chrome). You can also check the instalation of GWT in Eclipse. Look into Windows/Preferences and under Google/WebToolkit you should see checked GWT SDK. Also you can check if a jetty server runs on port 8888, when you type "netstat -na" on the command line.

Launching from Eclipses causes errors in browser

I've got a strange situation; when I run a Flex app from Eclipse (i.e. click run as web app), my remote calls always hang.
In Firefox, they return as failed.
But when I open up a browser and browse to my .html file in the bin-debug folder, the remote calls work.
Why is that?
Thanks for any helpful tips!
p.s. I'm accessing a websphere server and authentication is required but a Java developer hardcoded his ID in.
One thing to check:
Do you have a breakpoint set in your code somewhere? Eclipse may be waiting for you to interact with it so the program execution can continue. On my Win7 machine, when the debugger takes over, eclipse often does not take over focus; so I have to manually minimize IE.
My problem was solved today and the issue was getting through to the IBM websphere server; the authentication was still in place and the java developers had to create a cloned environment where authentication was not required. Thank you everyone for their helpful answers.