Cloud technology can be a bit confusing - once you move beyond the idea that things are running "in the cloud," you start to get into a lot of definitional questions. Are you talking about infrastructure as a service, platform as a service, or application as a service? Here is a nice article on Java Cloud Development Platforms to help break things down. One of the interesting things about these platforms is that the (mainstream) Java development platforms seem to be coalescing around a stack that includes:
- Apache Tomcat
- Built-in support for sending mail (based on Java Mail)
- Built-in load-balancing
- Dashboard support
Windows Azure is the Microsoft offering in this space - an area of significant investment.
While they don't offer support for Apache Tomcat, they do offer a virtual machine stack which provides for the option of running anything you might want - even Java and open source solutions.
Edit 5/5/2011 - It turns out Microsoft does support running Java applications on Azure... via Tomcat.