[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: java.lang.RuntimeException: Invocation of program failed.AS400Message (ID: CPF9897 text: XML parse failed at line 1, col 2: not well-formed (invalid token)):com.ibm.as400.access.AS400Message@34ce34ce
- From: Scott Klement <sk@xxxxxxxxxxxxxxxx>
- To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
- Subject: Re: java.lang.RuntimeException: Invocation of program failed.AS400Message (ID: CPF9897 text: XML parse failed at line 1, col 2: not well-formed (invalid token)):com.ibm.as400.access.AS400Message@34ce34ce
- Date: Sun, 16 Feb 2014 23:37:58 -0600
Hi Kevin,
Yes, you're right there appears to be a bug in the HTTP_XML_STMF
support that's preventing it from properly enabling translation -- so
for this reason, HTTP_XML_STMF is giving the same results as
HTTP_XML_CALC. I will fix this for the next beta/release of HTTPAPI.
In the mean time there are two ways to work around the problem (these
are alternatives, please do not try to do both, just one or the other)
1) Hard-code the CCSID in the call to http_parse_xml_stmf() such as:
rc = http_parse_xml_stmf( wFile
: 37
: %paddr(StartOfElement)
: %paddr(EndOfElement)
: *Null);
In this case, HTTPAPI will not try to calculate the CCSID at all, it'll
just use the one you provided (which is 37 in this example, but you can
use whichever CCSID is appropriate for your environment.)
2) Let the open() API translate it to UTF-8 (or any other CCSID that
Expat understands) when writing the data to the IFS. This will
convert your data to UTF-8, which the Expat XML parser understands.
flags = O_WRONLY + O_CREAT + O_EXCL
+ O_CCSID + O_TEXT_CREAT + O_TEXTDATA;
mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH;
fd = Open(wFile:flags:mode:1208:0);
If fd >= *Zero;
Monitor;
callp write(fd:%addr(DriverProExport) + 4:
%len(%Trim(DriverProExport)));
callp close(fd);
rc = http_parse_xml_stmf( wFile
: 1208
: %paddr(StartOfElement)
: %paddr(EndOfElement)
: *Null);
Well, now that I think about it, #2 is really the same as #1 with an
extra step added. Though, it's generally better to have your data in
Unicode, it doesn't help too much here since it was already in EBCDIC
to begin with, so you're already going to lose stuff.
Also notice the changes to the 'flags' variable. I didn't understand
why you were doing O_TRUNC or O_RDWR when you are generating a
temporary filename and therefore the file couldn't possibly already
exist, and also your code doesn't make any attempt to read it, it only
writes to it. Seems like a strange thing to do. So I changed it to
writing only and used O_EXCL. This way, it'll give you an error on any
file that already exists (preventing accidentally overwriting someone
else's file) and now that we know that it's created new, we can rely on
it being given the 1208 CCSID.
On 2/16/2014 5:11 AM, Kevin Wengert wrote:
Hi Scott,
I've attached a simplified version of the code that does no processing,
and just passes the CTDATA table, writes it to the IFS, then tries to
parse it. Still getting the same error.
Looking at the "D" on line 1, col 2 of the IFS, the hex code is x'C4'.
That is what I see when I DSPPFM on the source code and put it in hex
mode.
The CCSID on the IFS file is 37.
Here are the contents of the debug file:
HTTPAPI Ver 1.24 released 2012-01-23
OS/400 Ver
V7R1M0
New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819.
ProtLoc=0
SetError() #66: XML parse failed at line 1, col 2: not well-formed
(invalid token)
Thanks,
Kevin
-----Original Message-----
From: [1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[[2]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Scott
Klement
Sent: Saturday, February 15, 2014 10:18 PM
To: HTTPAPI and FTPAPI Projects
Subject: Re: java.lang.RuntimeException: Invocation of program
failed.AS400Message (ID: CPF9897 text: XML parse failed at line 1, col
2: not well-formed (invalid
token)):com.ibm.as400.access.AS400Message@34ce34ce
Kevin,
It's hard to guess when you don't have things to look at and see what
the problem is.
Can you look at the CCSID on the IFS file that's being fed to
http_parse_xml_stmf() and see what the CCSID is? Can you look at the
data in that file in hex and see whether those hex values make sense
for the CCSID that was used?
Can you provide me with the needed details to try to reproduce this on
my box so I can try it and troubleshoot it?
-SK
On 2/15/2014 7:02 PM, Kevin Wengert wrote:
> HI Scott,
>
>
> Thanks for the quick reply. The error message I copies was from
using
> the "Test Service" function under "Manage Deployed Services" in
IBM Web
> Administration for i. I used one of your presentations to step
through
> the IWS Wizard to create my web service provider. I know that I
have
> problems with my WSDL and SOAP envelope, but in trying to isolate
and
> fix one error at a time, I figured I would take the possibility
of
> corruption through the web service as my problem so I wrote the
first
> program to try to send a sample xml file through my program just
> dealing with everything on the iSeries, where I'm most
comfortable.
> The first program just allows me to pass the xml as a parameter.
>
>
> All that said, I changed HTTP_XML_CALC to HTTP_STMF_CALC and I'm
> getting the same error, "XML parse failed at line 1, col 2: not
> well-formed (invalid token)". Any other ideas?
>
>
> Thanks,
>
>
> Kevin
>
>
>
> -----Original Message-----
> From: [[3]1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
> [[2][4]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
Scott
> Klement
> Sent: Saturday, February 15, 2014 5:23 PM
> To: HTTPAPI and FTPAPI Projects
> Subject: Re: java.lang.RuntimeException: Invocation of program
> failed.AS400Message (ID: CPF9897 text: XML parse failed at line
1, col
> 2: not well-formed (invalid
> token)):com.ibm.as400.access.AS400Message@34ce34ce
>
>
>
> You are passing HTTP_XML_CALC to the XML parser. This tells it
to
> Expat's ability to figure out the text encoding from the contents
of
> the
>
> XML data, but Expat does not support EBCDIC. An easy work
around is
>
> to use HTTP_STMF_CALC instead of HTTP_XML_CALC. This tells it
to use
>
> the CCSID of your stream file, which IIRC, will default to your
job's
> CCSID, so should be correct.
>
>
> It seems very weird to me that you refer to this as a web service
> provider, and give a Java error message when nothing here appears
> to be
>
> a web service provider or written in Java. I can only assume
that the
>
> RPG program you provided that loads the XML from a CTDATA array
is not
> the "normal" way of calling this.
>
>
> If this is called from Java, are you required to have the data in
> EBCDIC
>
> there, too? This would likely work better if the data could be
>
> provided in Unicode, since the callers may not want to be
restricted to
> only passing data that fits in an EBCDIC character set -- that's
not
> your immediate problem, but could potentially be a problem down
the
> road.
>
>
> -SK
>
>
>
> On 2/15/2014 11:25 AM, Kevin Wengert wrote:
>
> > Hi,
>
> >
>
> >
>
> > I'm a newbie with creating a web service provider, but have
been
> doing
>
> > RPG coding for 20 years. This one has me pulling my hair
out so
> any
>
> > help would be greatly appreciated.
>
> >
>
> >
>
> > I've written a test program to send a sample XML file to my
web
> service
>
> > provider RPG. The web service accepts the xml as the first
> parameter
>
> > in a variable length field, writes it to the IFS, then
calls
>
> > http_parse_xml_stmf to parse the file. The error message
tells
> me that
>
> > XML parse failed at line 1, col2: not well-formed (invalid
> token). I'm
>
> > lost. Here are the relevant samples of the code:
>
> >
>
> >
>
> > H Copyright('Logistix Software Solutions, 2014')
>
> >
>
> > H Option(*SrcStmt: *NoDebugIO) DatEdit(*MDY)
DatFmt(*MDY)
>
> >
>
> > H DftActGrp(*NO) ActGrp(*CALLER) Bnddir('HTTPAPI')
>
> >
>
> >
>
> > D LPDBPSRR PR
ExtPgm('LPDBPSRR')
>
> >
>
> > D DriverProExport...
>
> >
>
> > D 9999995a Varying
>
> >
>
> > D Valid 5a Options(*NoPass)
>
> >
>
> > D Msg 256a Options(*NoPass)
>
> >
>
> >
>
> > D DS
>
> >
>
> > D DriverProExport...
>
> >
>
> > D 9999995a Varying
>
> >
>
> > D XML 1 DIM(3984)
>
> >
>
> > D
> Overlay(DriverProExport:5)
>
> >
>
> >
>
> > D txml s 1 DIM(3984) CTDATA
> PERRCD(80)
>
> >
>
> > D y s 10i 0
>
> >
>
> >
>
> > /Free
>
> >
>
> > %Len(DriverProExport) = %elem(xml);
>
> >
>
> > For y = 1 to %Elem(XML);
>
> >
>
> > XML(y) = TXML(y);
>
> >
>
> > EndFor;
>
> >
>
> > LPDBPSRR(DriverProExport);
>
> >
>
> > Return;
>
> >
>
> > /End-Free
>
> >
>
> > **
>
> >
>
> > <DriverProExport
>
> >
>
>
xmlns="[1][1][3][5]http://tempuri.org/"><RouteUpdates><Route><DCID>2</DCID
>
>
> >
>
> >
>
>
<RouteID>2018</RouteID><ScheduledDate>2014-01-24T00:00:00</ScheduledDa
> t
>
> > e><Stops>
>
> >
>
> >
>
>
<Stop><StopID>74071</StopID><AlternateStopNumber>1</AlternateStopNumbe
> r
>
> > ><Manifes
>
> >
>
> >
>
>
tNumber></ManifestNumber><DriverSignIndicator>false</DriverSignIndicat
> o
>
> > r><Driver
>
> >
>
> >
>
>
ID>4060</DriverID><DelivScanQty></DelivScanQty><DelivManualPickQty></D
> e
>
> > livManual
>
> >
>
> >
>
>
PickQty><ArrivalTime>2014-02-12T12:39:46</ArrivalTime><DepartureTime>2
> 0
>
> > 14-02-12T
>
> >
>
> >
>
>
12:47:18</DepartureTime><StopWorkDuration>450</StopWorkDuration><GPSLa
> t
>
> > itude>29.
>
> >
>
> >
>
>
7247</GPSLatitude><GPSLongitude>-95.5534</GPSLongitude><GPSDateTime>20
> 1
>
> > 4-02-12T1
>
> >
>
> >
>
>
2:39:47</GPSDateTime><ScheduledReturns><ScheduledReturn><PickupID>1456
> 9
>
> > 08</Picku
>
> >
>
> >
>
>
pID><ProductID>1114</ProductID><Quantity>1</Quantity><CreditReferenceI
> D
>
> > >1258513<
>
> >
>
> >
>
>
/CreditReferenceID><OriginalUOM></OriginalUOM><UOM>CS</UOM><Dispositio
> n
>
> > ></Dispos
>
> >
>
> >
>
>
ition><ReturnReasonCode></ReturnReasonCode><CreditAmount>0</CreditAmou
> n
>
> > t><Weight
>
> >
>
> >
>
>
>0</Weight><ReturnedProductID></ReturnedProductID><ReturnQuantity>1</R
> e
>
> > turnQuant
>
> >
>
> >
>
>
ity><TaxPerItem>0</TaxPerItem><TaxTotal>0</TaxTotal><AddChgPerItem>0</
> A
>
> > ddChgPerI
>
> >
>
> >
>
>
tem><AddChgTotal>0</AddChgTotal><Price>17.109</Price></ScheduledReturn
> >
>
> > </Schedul
>
> >
>
> >
>
>
edReturns><RejectItems><RejectItem><ProductID>64454</ProductID><Reject
> R
>
> > easonCode
>
> >
>
> >
>
>
>D30</RejectReasonCode><RejectQuantity>1</RejectQuantity><ReturnedProd
> u
>
> > ctID>6445
>
> >
>
> >
>
>
4</ReturnedProductID><Weight>0</Weight><ItemClass>O</ItemClass><Invoic
> e
>
> > Number>12
>
> >
>
> >
>
>
62878</InvoiceNumber><UOM>CS</UOM><ItemID>1262878-50</ItemID><Original
> Q
>
> > uantity>1
>
> >
>
> >
>
>
</OriginalQuantity><InvoiceSequence>50</InvoiceSequence><LotNumber></L
> o
>
> > tNumber><
>
> >
>
> >
>
>
TaxPerItem>1.23876</TaxPerItem><TaxTotal>1.24</TaxTotal><AddChgPerItem
> >
>
> > 0</AddChg
>
> >
>
> >
>
>
PerItem><AddChgTotal>0</AddChgTotal><CreditAmount>19.59</CreditAmount>
> <
>
> > ItemDescr
>
> >
>
> > iption>GLOVE VINYL POWDER FREE
>
> > X-LARGE</ItemDescription><AlternateProductID></Al
>
> >
>
> >
>
>
ternateProductID><Price>18.352</Price></RejectItem><RejectItem><Produc
> t
>
> > ID>7420</
>
> >
>
> >
>
>
ProductID><RejectReasonCode>D30</RejectReasonCode><RejectQuantity>1</R
> e
>
> > jectQuant
>
> >
>
> >
>
>
ity><ReturnedProductID>7420</ReturnedProductID><Weight>9.99</Weight><I
> t
>
> > emClass>O
>
> >
>
> >
>
>
</ItemClass><InvoiceNumber>1262878</InvoiceNumber><UOM>CS</UOM><ItemID
> >
>
> > 1262878-1
>
> >
>
> >
>
>
</ItemID><OriginalQuantity>1</OriginalQuantity><InvoiceSequence>1</Inv
> o
>
> > iceSequen
>
> >
>
> >
>
>
ce><LotNumber></LotNumber><TaxPerItem>0</TaxPerItem><TaxTotal>0</TaxTo
> t
>
> > al><AddCh
>
> >
>
> >
>
gPerItem>0</AddChgPerItem><AddChgTotal>0</AddChgTotal><CreditAmount>74.
>
> > 06</Credi
>
> >
>
> > tAmount><ItemDescription>N A SALMON 2-3 ATLANTIC FILLET
>
> > PBO</ItemDescription><Al
>
> >
>
> >
>
>
ternateProductID></AlternateProductID><Price>7.413</Price></RejectItem
> >
>
> > </RejectI
>
> >
>
> >
>
>
tems><InRouteSplits><InRouteSplit><ProductID>64212</ProductID><PackQua
> n
>
> > titySplit
>
> >
>
> >
>
>
>10</PackQuantitySplit><SplitReasonCode>D70</SplitReasonCode><Invoiced
> A
>
> > mount>2.7
>
> >
>
> >
>
>
</InvoicedAmount><AdjustedWeight>0</AdjustedWeight><MultiPickIndicator
> >
>
> > false</Mu
>
> >
>
> >
>
>
ltiPickIndicator><InRouteSplitQuantity>1</InRouteSplitQuantity><Invoic
> e
>
> > Number>12
>
> >
>
> >
>
>
62878</InvoiceNumber><UOM>EA</UOM><OriginalQuantity>1</OriginalQuantit
> y
>
> > ><ItemID>
>
> >
>
> >
>
>
1262878-49</ItemID><InvoiceSequence>49</InvoiceSequence><CaseWeight>0<
> /
>
> > CaseWeigh
>
> >
>
> >
>
>
t><TaxPerCase>0</TaxPerCase><CaseTaxTotal>0</CaseTaxTotal><CaseCreditA
> m
>
> > ount>3.26
>
> >
>
> >
>
>
</CaseCreditAmount><TaxPerSplit>0</TaxPerSplit><SplitTaxTotal>0</Split
> T
>
> > axTotal><
>
> >
>
> >
>
>
SplitChargeAmount>2.7</SplitChargeAmount><SplitsPerCase>12</SplitsPerC
> a
>
> > se><PackQ
>
> >
>
> >
uantityReturned>2</PackQuantityReturned><ItemDescription>DELI
> PAPER 8 X
>
> > 10 3 4</
>
> >
>
> >
>
>
ItemDescription><AlternateProductID></AlternateProductID><Price>3.262<
> /
>
> > Price><Sp
>
> >
>
> >
>
>
litPrice>0.27</SplitPrice></InRouteSplit></InRouteSplits><CatchWeightA
> d
>
> > justments
>
> >
>
> >
>
>
><CatchWeightAdjustment><ItemID>1262878-55</ItemID><ProductID>90676</P
> r
>
> > oductID><
>
> >
>
> >
>
>
InvoiceNumber>1262878</InvoiceNumber><InvoiceSequence>55</InvoiceSeque
> n
>
> > ce><Origi
>
> >
>
> >
>
>
nalWeight>17.95</OriginalWeight><AdjustedWeight>15.22</AdjustedWeight>
> <
>
> > TaxPerIte
>
> >
>
> >
>
>
m>0</TaxPerItem><TaxTotal>0</TaxTotal><CreditAmount>11.84</CreditAmoun
> t
>
> > ><Price>4
>
> >
>
> >
>
>
.338</Price></CatchWeightAdjustment></CatchWeightAdjustments><SalesOff
> T
>
> > ruck /></
>
> >
>
> > Stop></Stops><Inputs
/></Route></RouteUpdates></DriverProExport>
>
> >
>
> >
>
> >
>
> > H Copyright('Logistix Software Solutions, 2014')
>
> >
>
> > H Option(*SrcStmt: *NoDebugIO) DatEdit(*MDY)
DatFmt(*MDY)
>
> >
>
> > H DftActGrp(*NO) ActGrp(*CALLER) Bnddir('HTTPAPI')
>
> >
>
> > H PgmInfo(*PCML: *MODULE)
>
> >
>
> >
>
> >
> *****************************************************************
>
> >
>
> > * Copyright Logistix Software Solutions 2014
>
> >
>
> >
>
> >
> *****************************************************************
>
> >
>
> >
>
> >
> *****************************************************************
>
> >
>
> > * Logistix PoD Header
>
> >
>
> > FLPODSHM IF E K DISK
>
> >
>
> >
>
> > /copy qrpglesrc,httpapi_h
>
> >
>
> > /copy qrpglesrc,ifsio_h
>
> >
>
> >
>
> > D LPDBPSRR PR
ExtPgm('LPDBPSRR')
>
> >
>
> > D DriverProExport...
>
> >
>
> > D 9999995a Varying
>
> >
>
> > D Valid 5a Options(*NoPass)
>
> >
>
> > D Msg 256a Options(*NoPass)
>
> >
>
> >
>
> > D LPDBPSRR PI
>
> >
>
> > D DriverProExport...
>
> >
>
> > D 9999995a Varying
>
> >
>
> > D Valid 5a Options(*NoPass)
>
> >
>
> > D Msg 256a Options(*NoPass)
>
> >
>
> >
>
> > D StartOfElement PR
>
> >
>
> > D UserData * value
>
> >
>
> > D depth 10I 0 value
>
> >
>
> > D name 1024A varying const
>
> >
>
> > D path 24576A varying const
>
> >
>
> > D value 65535A varying const
>
> >
>
> > D attrs * dim(32767)
>
> >
>
> > D const
> options(*varsize)
>
> >
>
> >
>
> > D EndOfElement PR
>
> >
>
> > D UserData * value
>
> >
>
> > D depth 10I 0 value
>
> >
>
> > D name 1024A varying const
>
> >
>
> > D path 24576A varying const
>
> >
>
> > D value 65535A varying const
>
> >
>
> > D attrs * dim(32767)
>
> >
>
> > D const
> options(*varsize)
>
> >
>
> >
>
> > d GetLib PR
extpgm('WUTBOBJC')
>
> >
>
> > d 10 const
>
> >
>
> > d 10
>
> >
>
> > d 7 const
>
> >
>
> > d 50
>
> >
>
> > d 1
>
> >
>
> >
>
> > D RunCommand PR
ExtPgm('QCMDEXC')
>
> >
>
> > D Command 70a Const
>
> >
>
> > D Length 15p 5 Const
>
> >
>
> >
>
> > D SDS
>
> >
>
> > D PgmId *PROC
>
> >
>
> > D WrkStn 244 253
>
> >
>
> > D UsrNm 254 263
>
> >
>
> >
>
> > D rc s 10I 0
>
> >
>
> > D fd S 10I 0
>
> >
>
> > D flags S 10U 0
>
> >
>
> > D mode S 10U 0
>
> >
>
> > D len S 10I 0
>
> >
>
> >
>
> > /Free
>
> >
>
> >
>
> > GetDate(DateTime);
>
> >
>
> > wDebugFile = '/Logistix/Debug/DQ' +
%EditC(DateTime:'X')
> +
>
> > '.txt';
>
> >
>
> > http_debug(*ON: wDebugFile);
>
> >
>
> >
>
> > GetLib('KINETICS':ObjLib:'*JOBD':ObjDesc:ObjErr);
>
> >
>
> > Chain (ObjLib) LPODSHM;
>
> >
>
> >
>
> > wTimeStamp = %Char(%Timestamp():*ISO0);
>
> >
>
> > wFile = '/Logistix/Events/EV' + wTimeStamp +
'.xml';
>
> >
>
> > flags = O_RDWR + O_CREAT + O_TRUNC;
>
> >
>
> > mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH;
>
> >
>
> > fd = Open(wFile:flags:mode);
>
> >
>
> > If fd >= *Zero;
>
> >
>
> > Monitor;
>
> >
>
> > callp write(fd:%addr(DriverProExport) + 4:
>
> >
>
> > %len(%Trim(DriverProExport)));
>
> >
>
> > callp close(fd);
>
> >
>
> > rc = http_parse_xml_stmf( wFile
>
> >
>
> > : HTTP_XML_CALC
>
> >
>
> > : %paddr(StartOfElement)
>
> >
>
> > : %paddr(EndOfElement)
>
> >
>
> > : *Null);
>
> >
>
> > If RC <> *Zero;
>
> >
>
> > // Error processing;
>
> >
>
> > http_error(err);
>
> >
>
> > http_crash();
>
> >
>
> > Valid = 'false';
>
> >
>
> > Msg = 'Unable to parse file';
>
> >
>
> > Else;
>
> >
>
> > Valid = 'true';
>
> >
>
> > Msg = 'OK';
>
> >
>
> > // Do some processing
>
> >
>
> > EndIf;
>
> >
>
> > On-Error;
>
> >
>
> > // Error processing;
>
> >
>
> > http_error(err);
>
> >
>
> > http_crash();
>
> >
>
> > Valid = 'false';
>
> >
>
> > Msg = 'Unknown error in writing or parsing ifs
file';
>
> >
>
> > EndMon;
>
> >
>
> > Else;
>
> >
>
> > // Error processing;
>
> >
>
> > http_error(err);
>
> >
>
> > http_crash();
>
> >
>
> > Valid = 'false';
>
> >
>
> > Msg = 'Unable to open ifs file';
>
> >
>
> > EndIf;
>
> >
>
> >
>
> > Return;
>
> >
>
> > /End-Free
>
> >
>
> >
>
> > Thanks,
>
> >
>
> >
>
> > Kevin
>
> >
>
> >
>
> >
>
> > Thanks,
>
> >
>
> >
>
> > Kevin
>
> >
>
> > References
>
> >
>
> > 1. [2][4][6]http://tempuri.org/
>
> >
>
> >
>
> >
>
> >
>
>
----------------------------------------------------------------------
>
> > - This is the FTPAPI mailing list. To unsubscribe, please go
to:
>
> > [3][5][7]http://www.scottklement.com/mailman/listinfo/ftpapi
>
> >
>
>
----------------------------------------------------------------------
>
> > -
>
> References
>
> 1.
[6][8]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c
/DCID
> 2. [7][9]http://tempuri.org/
> 3. [8][10]http://www.scottklement.com/mailman/listinfo/ftpapi
>
>
>
>
----------------------------------------------------------------------
> - This is the FTPAPI mailing list. To unsubscribe, please go to:
> [9][11]http://www.scottklement.com/mailman/listinfo/ftpapi
>
----------------------------------------------------------------------
> -
References
1. [12]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
2. [13]mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
3. [14]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/D
CID
4. [15]http://tempuri.org/
5. [16]http://www.scottklement.com/mailman/listinfo/ftpapi
6. [17]http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/D
CID
7. [18]http://tempuri.org/
8. [19]http://www.scottklement.com/mailman/listinfo/ftpapi
9. [20]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
[21]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
References
1. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
2. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
3. mailto:1]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
4. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
5. http://tempuri.org/
6. http://tempuri.org/
7. http://www.scottklement.com/mailman/listinfo/ftpapi
8. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c
9. http://tempuri.org/
10. http://www.scottklement.com/mailman/listinfo/ftpapi
11. http://www.scottklement.com/mailman/listinfo/ftpapi
12. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
13. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
14. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/DCID
15. http://tempuri.org/
16. http://www.scottklement.com/mailman/listinfo/ftpapi
17. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/DCID
18. http://tempuri.org/
19. http://www.scottklement.com/mailman/listinfo/ftpapi
20. http://www.scottklement.com/mailman/listinfo/ftpapi
21. http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------