It appears that the problem occurs when the WeatherSoapClient class tries to find the wsdl resource when you are running as a simple Java class from a main method, it will not find it because of the leading slash in the url:
URL url = WeatherSoapClient.class.getClassLoader().getResource(“/wsdls/com/cdyne/ws/wsdl/asmx/weather/weatherws/weatherws.wsdl”);
However, when you run as a webapp the WebAppClassloader finds the resource regardless of whether there is a leading slash or not.
You can remove the leading slash from the WeatherSoapClient.getDefaultWSDLURL() method where it calls getResource() to get around the problem. I will enter a bug in JIRA as it appears we should not be generating a leading slash.
Let me know if this doesn’t solve the problem.