HTTP forwarding from Reverse Invoke Server

I am developing a Webmethods architecture that supports FTP transmissions. When a partner PUTS a file to my company, it is delivered to a filesystem in our DMZ. Webmethods architects suggested that I poll the directory using a Reverse Invoke Server and HTTP POST the file content to the Reverse Invoke Proxy Port whereby the Integration Server will receive the message. Headers will be populated which communicate the filename and path.

Ok, now the problem. I’m using pub.client.http to PUT the message to a service (receiveFromRIS) on the Reverse Invoke Proxy Port. Currently, I’m testing with XML, so I set the Content-Type to text/xml. I mapped the content to data/bytes.

Here’s the problem: the receiving service is receiving the content, but its in the name of the name/value pair. The value is null. For instance, if I HTTP PUT “testdata”, I receive * name=testdata value=null.

Any help is appreciated.

Can you tell us what did you set the receiving service input variable?

And in your receive service for debugging purpose invoke the pub.flow:getTransportInfo along with a savepipeline service and check it later with restorepipeline.

HTH,

I think I got it to work! I passed the content in pub.client.http as Data/Args/$xmldata and now I have a handle to all data in the receiving service. I passed the filename as an Data/Args/filename with success. All with be passed into my TN Gateway service.

Now i need to try it with file polling. I’m going to get the Content-type using getTransportInfo. It should work.

Hopefully it will work the same for ffdata.

Thanks

yes,when doing filepolling the input should be (ffdata) stream object,it should work.

HTH,

When sending xml you have to use $xmldata as the name-value pair otherwise the handler won’t convert it.

I’ve got ffdata working by converting it to a string (bytesToString) and then passing it as a Data/Args/ffString. Its not elegant. Do you have any recommendations for large file handling in this scenario? I tried to pass the content in Data/stream, but again the receiving service is receiving the content, but its in the name of the name/value pair. The value is null.

Are you receiving the data in ffdata as a stream object or bytes?
(StreamTobytes and bytesToString)

Set the receiving service input to contentStream(object) and give it a shot.

Regarding largefile handling you can configure in TN to handle this.
See the TNLargefilehandling userguide for more information.And there are lot of threads already discussed on this.

HTH,

It seems that the data is received in bytes.

I don’t think that TN can help me stream data from the Reverse Invoke Server to the Integration server.

I found a rather disturbing, yet dated thread regarding reverse invoke and large files.

http://www.wmusers.com/wmusers/messages/117/804.shtml

If you configure TN Largefile handling then in the IS flow using(wm.tn.doc:getContentPartData)set getAS (Stream) from TN bizdoc,you will be able to get the stream data.

Sorry if i am too confusing,Can you elaborate more on your current process.

HTH,

Hi,
I am having the following problem,

We receive xmlstring from an application that is residing outside firewall.
The xml string gets redirected to IS flow service via reverse proxy invoke.

The xml string has payload heads along with CDATA tag. However if ‘/’ comes with the data,the IS flow service gets the xml string as empty. Though suche xml string reaches the reverse proxy server,but it becomes null while reaching the IS flow service.

We have webMethods 6.0.1 environment and OS is Unix.

Can anybody help?