A production webapp must be a WAR (or EAR). so the fact that you developed it using Eclipse, NetBeans, IntelliJ, whatever, makes no difference. In fact, I've had a few projects where I switched back and forth between Eclipse and IntelliJ. The main thing is that you have a mechanism (internal or external) that can construct a WAR. If the IDE can do that, fine, although I personally have scar tissue and always keep a means of doing a non-IDE build using something like
Ant or Maven. An IDE may also have a deployment mechanism, but you'd have to check to see if you can use that mechanism to deploy to your target server.
As far as hosting providers go, there are basically several tiers. The cheapest hosts are LAMP or equivalent platforms. They can run on relatively slow CPUs and have relatively little memory. They're useless for
J2EE.
A step up is a hosting provider that also provides a J2EE server as part of the package. Typically, it's
Tomcat. It may not be the most up-to-date release of Tomcat, however, and if you need extensive customization (for example, I have Spring hooks in my Tomcat servers), this may not be sufficient. These days, some "cloud servers" qualify at this level.
Going up the scale in terms of power (and price
) is the full-blown shell account system. Details may vary, but basically, you "own" the server, have your own private remote login, and can install whatever J2EE server you want. Typically, you'd want 2GB of RAM and a 2GHz CPU as a baseline.
Installing a webapp usually involves FTP or SCP copying of the WAR. In my case, I'm running full shell, so I build RHEL RPMs, which allows me to maintain both the WAR and its external (non-java) infrastructure in a single installation package.
A full shell host is likely to run about $200/month, but if it's what you need to stay in the game, you may have to just bite the bullet. And, of course, do what it takes to make it tax-deductible, so as to reduce the pain a little.
An alternative that is usually much cheaper is to host on a machine of your own in your own home (or wherever). Most of us don't have fixed IP addresses (I do, but it costs dearly). So what you can do is hook up with a service such as dyndns that can be used to make your (non-public) server appear on the public Internet. Assuming that your ISP doesn't block that kind of stuff.