I have a scenario where a .NET 3.5 WebClient
is performing a SOAP request and the SoapAction
that is being sent in the the header is this
<Host>:<Port>/NotOps/RFMP/portTypeEndPoint?SessionID=<token>
But on the receiving side of the SOAP REQUEST , which is JAVA, there is a "/" being received before the "?" character
<Host>:<Port>/NotOps/RFMP/portTypeEndPoint/?SessionID=<token>
Is it posible for a network proxy to alter any part of soap request ? (by network proxy I mean the proxy that is used inside a bussiness to access the Web an other networks )
Are there still interoperability issue betweeen a .Net 3.5 client that consumes a Java service like the ones mentioned here
.NET requires that the HTTP SOAPAction header be used to exactly identify the operation on which service is being invoked. .NET requires the format of the SOAPAction header to be the service namespace, followed by a forward slash, followed by the name of the operation, or urn:Example/sayHello. Notice, though, that SOAP::Lite's default is to use a pound sign (#) to separate the service namespace from the name of the operation. This wasn't an issue when we were invoking Java services with SOAP::Lite because Apache SOAP simply ignores the SOAPAction header altogether.
This is mentioned http://oreilly.com/catalog/progwebsoap/chapter/ch03.html Example 3-19
Any Ideas of other things than can be causing this behaviour ?
In this case the error, that mentioned the additional forward slash, was misleading since the error was the result of lack of permission on the endpoint of the communication
As you said, this behaviour could be caused by proxy with some rewrite, but it would be very strange.
Try following test:
From .NET code call some mock (ideally on the same machine as is your program) and check the SoapAction.
Call your java code from SoapUI with exactly the same request as you got from step 1. (again ideally from the same machine)
If it still adds / before ? it meant that the technology you are using is altering this for you (my guess would be java application server).
If / won't appear then you have to investigate your network and find the magical proxy.
Beside the answer provided by jakub.petr
The error, that mentioned the extra forward slash, was the result of lack of permission on the endpoint of the communication
Keep in mind that even detailed errors can mislead you to try to fix things that are not broken
So
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.