Sadly, I've found quite a few Web services that can't be consumed by
ColdFusion. ColdFusion simply does not provide enough information to debug
these types of problems (the dreaded "argument type mismatch" is a perfect
example). Consequently, I've taken to writing wrappers in ASP.Net.

Ben Rogers
http://www.c4.net
v.508.240.0051
f.508.240.0057

> -----Original Message-----
> From: Ian Skinner [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, January 05, 2005 3:15 PM
> To: CF-Talk
> Subject: RE: US Weather from NWS (was RE: CF-Tag Weather for UK (London)?)
> 
> Well, I made a small amount of progress.  I have at least proved that
> ColdFusion can retrieve some kind of data from a National Weather Service
> web service.  But, it is not very useful yet.  First of all, I played with
> the code, and I was able to get a different error "Could not perform web
> service invocation "NDFDgenByDay" because
> java.lang.IllegalArgumentException: argument type mismatch".  I have not
> been able to figure out what argument has a mismatched type.  But the code
> was now finding the service and its methods.
> 
> Then I found a different web service URI that I can get data from one of
> the two functions to be returned.  But this data is not properly formed
> XML.  There are several close tags "</someTag>" without an appropriate
> start tag.  This makes the data fairly difficult to use, I think.
> 
> I wanted to post my progress here, so that others interested with more web
> service skill then I may be able to figure this out.  I would really love
> to be able to get data like this, because it could be a very nice addition
> to an Outdoor Recreation site I maintain.
> 
> MY CODE
> ---------------
> 
> <cfscript>
>       // Parameters for the NDFgenByDay function
>       NDFDgenByDay = structNew();
>       NDFDgenByDay.latitude = 38.9936;
>       NDFDgenByDay.longitude = -77.0224;
>       NDFDgenByDay.format = "12hourly";
>       NDFDgenByDay.startDate = "2005-01-05";
>       NDFDgenByDay.numDays = 7;
> 
>       // Parameters for the NDFDgen function
>       NDFDgen = StructNew();
>       NDFDgen.Latitude = 38.9936;
>       NDFDgen.Longitude = -77.0224;
>       NDFDgen.StartTime = "2005-01-05T00:00:00.5";
>       NDFDgen.Endtime = "2005-01-06T00:00:00.5";
>       NDFDgen.Product = "glance";
> 
>       weatherParameters = StructNew();
>       weatherParameters.maxt = true;
>       weatherParameters.mint = true;
>       weatherParameters.temp = true;
>       weatherParameters.dew = true;
>       weatherParameters.pop12 = true;
>       weatherParameters.qpf = true;
>       weatherParameters.snow = true;
>       weatherParameters.sky = true;
>       weatherParameters.wspd = true;
>       weatherParameters.wdir = true;
>       weatherParameters.wx = true;
>       weatherParameters.icons = true;
>       weatherParameters.waveh = true;
> 
>       NDFDgen.weatherParameters = weatherParameters;
> 
>       //The new URI I found when digging around the documentation
>       ws1 = CreateObject("webservice",
> "http://www.nws.noaa.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php?wsdl";
> );
>       //The Original URL
>       ws2 = CreateObject("webservice",
> "http://www.nws.noaa.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl";);
> 
>       //Initilize result strings so that there will always be something to
> output.
>       aStringWS1 = 'No Output Generated';
>       aStringWS2 = 'No Output Generated';
> </cfscript>
> 
> <!---
>       TWO possible URI for the web service.
>       http://www.nws.noaa.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl
>       http://www.nws.noaa.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php?
> wsdl
> --->
> 
> <cftry>
>       <!--- This call to the new web service will return data, but not
> well formed XML --->
>       <cfset aStringWS1 = ws1.NDFDgenByDay(argumentCollection =
> NDFDgenByDay)>
>       <cfcatch type="any"><cfdump var="#cfcatch#" expand="no"
> label="ERROR:
> http://www.nws.noaa.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php?wsdl";>
> </cfcatch>
> </cftry>
> 
> <cftry>
>       <!--- This call to the original web service does not return data,
> but errors with the mismatched argurment type error. --->
>       <cfset aStringWS2 = ws2.NDFDgenByDay(argumentCollection =
> NDFDgenByDay)>
>       <cfcatch type="any"><cfdump var="#cfcatch#" expand="no"
> label="ERROR:
> http://www.nws.noaa.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl";></cfcatch
> >
> </cftry>
> 
> <h1>Results</h1>
> <cfoutput>
>       <h2>http://www.nws.noaa.gov/forecasts/xml/SOAP_server/ndfdXMLserver.
> php?wsdl</h2>
>       #HTMLEditFormat(aStringWS1)#
>       <hr>
>       <h2>http://www.nws.noaa.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl<
> /h2>
>       #HTMLEditFormat(aStringWS2)#
> </cfoutput>
> 
> --------------
> Ian Skinner
> Web Programmer
> BloodSource
> www.BloodSource.org
> Sacramento, CA
> 
> "C code. C code run. Run code run. Please!"
> - Cynthia Dunning
> 
> 
> 
> Confidentiality Notice:  This message including any
> attachments is for the sole use of the intended
> recipient(s) and may contain confidential and privileged
> information. Any unauthorized review, use, disclosure or
> distribution is prohibited. If you are not the
> intended recipient, please contact the sender and
> delete any copies of this message.
> 
> 
> 
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Discover CFTicket - The leading ColdFusion Help Desk and Trouble 
Ticket application

http://www.houseoffusion.com/banners/view.cfm?bannerid=48

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:189438
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to