Yesterday and today I was still struggling with this piece of code. I have some ‘old’ non-remobjects clients that were able to communicate with a RemObjects 8.3 server, but not with 9.3 or 9.4
However, I think that the fix mentioned above (Base URL for an RO Server) is the way to go and hence, I implemented a CustomResponseEvent. But for that I basically copied the example. And then, in that example there was no clone of the ROMessage like was mentioned in Using OnCustomResponseEvent in a ROSDK Server.
Hence I now used the following code that seems to solve my issue:
procedure TDmROServer.ROServerCustomResponseEvent(const aTransport: IROHTTPTransport; const aRequestStream,
aResponseStream: TStream; const aResponse: IROHTTPResponse; var aHandled: Boolean);
var
op: TROResponseOptions;
lMessage: IROMessage;
begin
if AnsiMatchText(aTransport.PathInfo, ['/soap/IMyService1', '/soap/IMyService2']) then
begin
lMessage:= (ROSOAPMessage1 as IROMessageCloneable).Clone; //This one I originally forgot.
MainProcessMessage(lMessage, aTransport, aRequestStream, aResponseStream, op);
aHandled := True;
end;
end;
I just added this response since it might help others struggling with old clients that are not compatible anymore to RemObjects 9.x servers.