In my previous entry I showed how to create a SoapUI test case to do a WS-Adressing driven request-response interaction with an asynchronous BPEL Process. But how does this WS-Adressing request look like?
To get this above the water a tool like the HTTP Analyser of JDeveloper 11g may come in handy.
It is found in the tools option of JDeveloper:
This opens the HTTP Analyser normally at the bottom of the screen:
To use it for our purpose we have to create a HTTP-listener with a forwarding rule. This means that it just listens to request and forwards the request to a URL we provide.
To do this I added a new listener with a new port 8100:
Then click on the "Configure Rules" button, add a forward rule (click on the dropdown triangle of the Add button and choose Forward Rule):
In the reference URL part in the screen above you can put a URL that is used to test the URL Filter.
But after playing around I just left this URL Filter field.
In the Target URL I put the complete URL of the original endpoint of the WSDL from SoapUI, found in the Test Request step in SoapUI. But this one I've replaced by adding a new endpoint:
The added endpoint will have the original URL but with the hostname:port replaced to localhost:8100 (where the HTTP Analyser is listening):
Thus:
http://localhost:8100/soa-infra/services/default/M10HelloWorld/helloworld_client_epThen you can run the HTTP Analyser:
I've copied and pasted the message from the screendump into a new XML Document in JDeveloper and reformated it:
<?xml version="1.0" encoding="windows-1252" ?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="http://xmlns.oracle.com/M10_Demo/M10HelloWorld/HelloWorld"> <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action soapenv:mustUnderstand="1">process</wsa:Action> <wsa:ReplyTo soapenv:mustUnderstand="1"> <wsa:Address>http://hostname.darwin-it.nl:8989/HelloWorldCallbackBinding/processResponse</wsa:Address> </wsa:ReplyTo> <wsa:MessageID soapenv:mustUnderstand="1">uuid:36f10438-0270-4318-a5a5-fd2ad44d6136</wsa:MessageID> </soapenv:Header> <soapenv:Body> <hel:process> <hel:input>Astrid</hel:input> </hel:process> </soapenv:Body> </soapenv:Envelope>
Here you can see the properties set in SoapUI (see previous blog in the WSA-header:
- Action - mustUnderstand="1"
- Action (defaulted): process
- ReplyTo - Address: http://hostname.darwin-it.nl:8989/HelloWorldCallbackBinding/processResponse
- MessageID (generated): uuid:36f10438-0270-4318-a5a5-fd2ad44d6136
A substitute rule will look like:
With this each request to localhost:8100 is forwarded to hostname.darwin-it.nl:8001.
No comments:
Post a Comment