Digging a little deeper revealed the following.
I ran a native WorldWind application and observed the network traffic with a packet sniffer. When it sent a GetMap request, the request included a styles parameter as "STYLES=". When ArcGIS Explorer sends a GetMap request to the same WMS, the styles parameter looks like this: "STYLES=,,,,,,,,,".
Opening up the WorldWind WMS Java code, the section of code that validates the GetMap request includes the following:
this.styles = req.getParameterValues(WMS.Param.STYLES.toString());
if (null == this.styles || 0 == this.styles.length)
{
String msg = Logging.getMessage("WMS.MissingRequiredParameter", WMS.Param.STYLES.toString());
Logging.logger().severe(msg);
throw new WMSServiceException(msg);
}
I'm not much of a Java programmer but the behaviors suggest that the "STYLES=,,,,,,,,," parameter being sent by Explorer isn't passing the check performed by the WMS to validate the request and so the WMS is throwing an exception.