Debugging mobile web applications and sites could be a painful process on the BlackBerrry Java platform, since BlackBerry simulators don’t look up the system host file, and do not offer any mechanism to route HTTP traffic over a web proxy. Those things are necessary when:
- You need to spoof the IP of the remote host.
- You are running a local copy of the web site on your dev machine.
- You are behind a proxy.
The solution is to use the MDS-CS Simulator, that is available in the JDE folder as well in the Eclipse plugin folder, but the setup/configuration could be a little tricky and it could take a lot of time. That’s said, I wrote the followings “how-to” hoping it could help other developers.
- Make sure your port 8080 is not binded by any process. If that port is already in use you need to change the MDS configuration, by editing the file at plugins\net.rim.eide.componentpack#.#.#_#.#.#.##\components\MDS\confing\rimpublic.property and changing the WebServer.listen.port entry to something else.
- Enable HTTP and HTML logging in the BlackBerry MDS Simulator by following the instructions here.
Log files will be written at the following path ..\plugins\net.rim.eide.componentpack#.#.#_#.#.#.##\components\MDS\logs\
- Modify the batch file and/or command used to start the BlackBerry smartphone simulator, appending the following command:
- Start the MDS-CS Simulator. Wait until it is fully started.
- Launch the BlackBerry smartphone simulator.
- Open the connection settings in the BlackBerry smartphone simulator and turn off the WiFi radio.
- In the BlackBerry smartphone simulator go to Options -> Device -> Advanced System Settings -> Service Book.
- Delete the TCP service books listed (highlight them and choose Delete from the menu). You may need to delete those entries each time the simulator is started.
- Open the browser and load the page. You should see the a lot of entries in the log of the MDS-CS server.
If you are behind a proxy, in addition to the instructions above, you should follow the steps published here.
You can also install Charles or fiddler2, run one of them locally, and sniff the HTTP traffic, even for the HTTPS protocol. I found a good article about sniffing the web traffic on the BlackBerry simulator here.