|
Mailing Lists
|
Home /
Groups /
ColdFusion Talk (CF-Talk)
Web Services choke on HTTP Compression?
Author: Michael Schreiber
Short Link: http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:49353#263761
Thanks, Steven!
That is brilliant. I guess I knew that ColdFusion just used the WSDL to generate
the stub objects, but I didn't know about the server port element tying it to the
actual webservice server. Saving the WSDL to my local machine works like a
charm.
The only weirdness is that our business partner swears that they don't use HTTP
compression on the server. Maybe its just an incompatibility with ColdFusion,
Web Services and SSL.
Thanks
Agan!
Author: Steven Erat
Short Link: http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:49353#263670
See if you can get the WSDL via CFHTTP first. If the remote webserver
is compression the server response containing the wsdl, then perhaps
this will help with the CFHTTP call:
http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729
Then, if successful, save the WSDL locally. Since the WSDL contains a
ServicePort property near the bottom of the file you will be able to put
the local web URI of the wsdl into the CFINVOKE tag, and the ServicePort
will be used to run the web service.
The WSDL is only used to create a local stub for ColdFusion. It doesn't
matter where the WSDL is, so long as the ServicePort reference the
actual location of the working web service. The local stub has all the
right methods invocations and it has the right webservice location from
the ServicePort.
In psuedo code:
[cfhttp url="http://www.remoteserver.com/dosomething.wsdl"]
[cffile file="C:\inetpub\wwwroot\remoteServer_doSomething.wsdl"
output="#cfhttp.filecontent#"]
[cfinvoke webservice="http://localhost/remoteServer_doSomething.wsdl"
method="foo" result="actualWebServiceResult"]
How's that?
-Steven Erat
----- Excess quoted text cut - see Original Post for more -----
. WSDL: > https://www.travelinsured.com/TIWebServiceQA/service.asmx?wsdl
----- Excess quoted text cut - see Original Post for more -----
Author: Michael Schreiber
Short Link: http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:49353#263647
When I try to call a web service from one of our business partners, I get the
error: java.util.zip.ZipException: unknown compression method. This seems to
have something to do with HTTP Compression on the partner's server. I've seen a
work-around for CFHTTP (passing additional HTTP headers), but I haven't been able
to track down a solution for web service calls.
Has anyone had this problem before? Any resolutions floating around out there?
Background:
I'm trying to consume a webservice that I had previously used just fine (via
HTTP), but has recently moved to a new server (using HTTPS). I can bring up the
WSDL just fine using my browser. When I try to register the webservice through CF
Administrator, I get the error: Error creating web service. Please ensure that
you have entered a correct Web Service name or URL.
If I try and call the webservice from my CF code, the full error message I get
is:
Name: https://www.travelinsured.com/TIWebServiceQA/service.asmx?wsdl.
WSDL: https://www.travelinsured.com/TIWebServiceQA/service.asmx?wsdl.
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.
Any help would be greatly appreciated!
Thanks!
|
May 24, 2012
|
Latest Fusion Authority Articles
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||