I am trying to consume a .NET web service in ColdFusion via
SSL and I am experiencing some serious problems. I know the URL is
correct because I can browse to the WSDL using my browser. From the
errors and my research, it looks like the problem could involve
http compression on the server hosting the web service. I've seen
some work-arounds for CFHTTP using custom HTTP headers, but I
haven't been able to figure out a way to get something to work with
a web service call. Any ideas? Is ColdFusion just incompatible with
webservices using HTTP compression?
Here's the summary of the problems:
1) I can't register the web service in the CF Administrator -
when I try, I get the error:
Error creating web service. Please ensure that you have entered
a correct Web Service name or URL.
2) When I try to consume the web service in CF, I get the
Could not generate stub objects for web service invocation.
java.util.zip.ZipException: unknown compression method It is
recommended that you use a web browser to retrieve and examine the
requested WSDL document for correctness. If the requested WSDL
document can't be retrieved or it is dynamically generated, it is
likely that the target web service has programming errors.
3) Just to be sure, I've registered the latest certificate
for the secure site I'm trying to access in the ColdFusion Java
I've seen some similar topics in the forum before involving
web services and SSL but nothing on HTTP compression. Has anyone
had this problem before? Any fixes?
A helpful poster on the House of Fusion forums pointed me to
Apparently ColdFusion just uses the WSDL to create the sub
objects for the web service call, so as long as there is a service
port address secified in the WSDL it doesn't matter where the
actual WSDL file sits. So I just downloaded the WSDL using CFHTTP
(had to use this article to configure CFHTTP for HTTP Compression:
and then I pointed my CF Administrator to the WSDL on my local
machine. And Presto - I can connect to the web service no problem
Only problem is that I have to download the WSDL every time
there is a change to the webservice, but I can schedule a task that
downloads the file once a week or so.