geby
geby

Reputation: 374

Mule web-service proxy

Given the free/open web-service for climate at:

http://eklima.no/wsKlima/standard/standard_en.html

with its web service interface at:

http://eklima.no/metdata/MetDataService

and WSDL at:

http://eklima.no/metdata/MetDataService?WSDL

I have been trying to use this as testcase for experimenting with mule web-proxy pattern configuration.

I have tried this config variant:

<pattern:web-service-proxy name="klimamet-ws-proxy" 
inboundAddress="http://localhost:8080/klimamet"
outboundAddress="http://eklima.no/metdata/MetDataService" />

Now if i access the real web seb service directly, it will give me a proper response:

http://eklima.no/metdata/MetDataService?invoke=getMetData&timeserietypeID=0&format=&from=2006-01-01&to=2006-01-05&stations=18700&elements=tam&hours=&months=&username=

Then if i access the proxy just to get the wsdl, it works:

http://localhost:8080/klimamet?wsdl

but if I do a real service request towards the proxy:

http://localhost:8080/klimamet?invoke=getMetData&timeserietypeID=0&format=&from=2006-01-01&to=2006-01-05&stations=18700&elements=tam&hours=&months=&username=

then i just get the documentation page (same as: http://eklima.no/metdata/MetDataService), and not the expected soap xml-response.

I don't see any proper clue of what's wrong by looking in the logs.

By that way I have tried other variations of the config, but it just gives me other types of errors.

I will be thankful if anyone can help me spot the problem.

Upvotes: 0

Views: 324

Answers (1)

David Dossot
David Dossot

Reputation: 33413

The Web Service proxy works with standard SOAP requests, i.e. HTTP POSTed SOAP envelopes. You are using HTTP GET here. Please use HTTP POST with the web-service-proxy.

If you really want to keep using GET, then switch to the pattern:http-proxy, which will forward the GET parameters to the outbound endpoint. Note that it will not rewrite the WSDL so clients of your proxy won't be able to rely on it.

Upvotes: 1

Related Questions