[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



   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]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. http://tempuri.org/
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------