[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: "Kevin Wengert" <kevin@xxxxxxxxxxxxxxxxxx>
- 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: Sat, 15 Feb 2014 18:02:44 -0700
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: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[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]http://tempuri.org/"><RouteUpdates><Route><DCID>2</DCID>
>
>
<RouteID>2018</RouteID><ScheduledDate>2014-01-24T00:00:00</ScheduledDat
> e><Stops>
>
>
<Stop><StopID>74071</StopID><AlternateStopNumber>1</AlternateStopNumber
> ><Manifes
>
>
tNumber></ManifestNumber><DriverSignIndicator>false</DriverSignIndicato
> r><Driver
>
>
ID>4060</DriverID><DelivScanQty></DelivScanQty><DelivManualPickQty></De
> livManual
>
>
PickQty><ArrivalTime>2014-02-12T12:39:46</ArrivalTime><DepartureTime>20
> 14-02-12T
>
>
12:47:18</DepartureTime><StopWorkDuration>450</StopWorkDuration><GPSLat
> itude>29.
>
>
7247</GPSLatitude><GPSLongitude>-95.5534</GPSLongitude><GPSDateTime>201
> 4-02-12T1
>
>
2:39:47</GPSDateTime><ScheduledReturns><ScheduledReturn><PickupID>14569
> 08</Picku
>
>
pID><ProductID>1114</ProductID><Quantity>1</Quantity><CreditReferenceID
> >1258513<
>
>
/CreditReferenceID><OriginalUOM></OriginalUOM><UOM>CS</UOM><Disposition
> ></Dispos
>
>
ition><ReturnReasonCode></ReturnReasonCode><CreditAmount>0</CreditAmoun
> t><Weight
>
>
>0</Weight><ReturnedProductID></ReturnedProductID><ReturnQuantity>1</Re
> 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><RejectR
> easonCode
>
>
>D30</RejectReasonCode><RejectQuantity>1</RejectQuantity><ReturnedProdu
> ctID>6445
>
>
4</ReturnedProductID><Weight>0</Weight><ItemClass>O</ItemClass><Invoice
> Number>12
>
>
62878</InvoiceNumber><UOM>CS</UOM><ItemID>1262878-50</ItemID><OriginalQ
> uantity>1
>
>
</OriginalQuantity><InvoiceSequence>50</InvoiceSequence><LotNumber></Lo
> 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><Product
> ID>7420</
>
>
ProductID><RejectReasonCode>D30</RejectReasonCode><RejectQuantity>1</Re
> jectQuant
>
>
ity><ReturnedProductID>7420</ReturnedProductID><Weight>9.99</Weight><It
> emClass>O
>
>
</ItemClass><InvoiceNumber>1262878</InvoiceNumber><UOM>CS</UOM><ItemID>
> 1262878-1
>
>
</ItemID><OriginalQuantity>1</OriginalQuantity><InvoiceSequence>1</Invo
> iceSequen
>
>
ce><LotNumber></LotNumber><TaxPerItem>0</TaxPerItem><TaxTotal>0</TaxTot
> 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><PackQuan
> titySplit
>
>
>10</PackQuantitySplit><SplitReasonCode>D70</SplitReasonCode><InvoicedA
> mount>2.7
>
>
</InvoicedAmount><AdjustedWeight>0</AdjustedWeight><MultiPickIndicator>
> false</Mu
>
>
ltiPickIndicator><InRouteSplitQuantity>1</InRouteSplitQuantity><Invoice
> Number>12
>
>
62878</InvoiceNumber><UOM>EA</UOM><OriginalQuantity>1</OriginalQuantity
> ><ItemID>
>
>
1262878-49</ItemID><InvoiceSequence>49</InvoiceSequence><CaseWeight>0</
> CaseWeigh
>
>
t><TaxPerCase>0</TaxPerCase><CaseTaxTotal>0</CaseTaxTotal><CaseCreditAm
> ount>3.26
>
>
</CaseCreditAmount><TaxPerSplit>0</TaxPerSplit><SplitTaxTotal>0</SplitT
> axTotal><
>
>
SplitChargeAmount>2.7</SplitChargeAmount><SplitsPerCase>12</SplitsPerCa
> 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><CatchWeightAd
> justments
>
>
><CatchWeightAdjustment><ItemID>1262878-55</ItemID><ProductID>90676</Pr
> oductID><
>
>
InvoiceNumber>1262878</InvoiceNumber><InvoiceSequence>55</InvoiceSequen
> ce><Origi
>
>
nalWeight>17.95</OriginalWeight><AdjustedWeight>15.22</AdjustedWeight><
> TaxPerIte
>
>
m>0</TaxPerItem><TaxTotal>0</TaxTotal><CreditAmount>11.84</CreditAmount
> ><Price>4
>
>
.338</Price></CatchWeightAdjustment></CatchWeightAdjustments><SalesOffT
> 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]http://tempuri.org/
>
>
>
>
----------------------------------------------------------------------
> - This is the FTPAPI mailing list. To unsubscribe, please go to:
> [3]http://www.scottklement.com/mailman/listinfo/ftpapi
>
----------------------------------------------------------------------
> -
References
1. http://tempuri.org/%22%3e%3cRouteUpdates%3e%3cRoute%3e%3cDCID%3e2%3c/DCID
2. http://tempuri.org/
3. 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
-----------------------------------------------------------------------