[HTTPS] post returning null

Hi, I've been trying to program something that can log me into the school website automatically, with the intention to synchronize every interesting thing.
Now, I've got the https login page correct, and found a hidden element in the login form that is always required. But that still does not work...
Anyhow, here's some code I'm talking about, the result of the post is " 1null" (Meaning one line, and after that end of stream)
public void post_url (String arg, String file) {
    try {
      Security.addProvider (new com.sun.net.ssl.internal.ssl.Provider ());
      SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault ();
      SSLSocket socket = (SSLSocket)factory.createSocket (host, port);
      Writer out = new OutputStreamWriter (socket.getOutputStream ());
      out.write ("POST http://" + this.host + "/" + file + " HTTP/1.1\r\n");
      out.write ("Host: " + host);
      out.write ("User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.8) Gecko/20071030 Firefox/2.0.0.8");
      out.write ("Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
      out.write ("Accept-Language: en-us,en;q=0.5");
      out.write ("Accept-Encoding: gzip,deflate");
      out.write ("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
      out.write ("Keep-Alive: 300");
      out.write ("Connection: keep-alive");
      out.write ("Referer: https://***/cas/login?service=https%3A%2F%2Fidp.***%2Fshibboleth-idp%2FSSO%3Fshire%3Dhttps%253A%252F%252F***%252FShibboleth.sso%252FSAML%252FArtifact%26time%3D1195915147%26target%3Dcookie%26providerId%3Dhttps%253A%252F%252F***");
      out.write (this.cookie);
      out.write ("Content-Type: application/x-www-form-urlencoded");
      out.write ("Content-Lenght: " + arg.length ());
      out.write (arg);
      out.flush ();
      BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream ()));
      String total = "";
      String lijntje = "";
      int c = 1;
      do {
        lijntje = in.readLine ();
        total += lijntje;
        System.out.print (" " + c);
        c++;
      } while (lijntje != null);
      System.out.println (total);
      out.close ();
      in.close ();
      socket.close ();
    } catch (IOException e) {
      System.err.println (e);
}Which is called by:
this.connection.post_url ("username=" + this.user + "&password=" + this.pass + "&lt=" + lt + "&_currentStateId=&_eventId=submit", "***");For reasons of privacy, I've removed any link to the website... I hope anyone can help me out here, for I'm puzzled beyond my knowledge...

So, I've used your hint and formed this code:
      URL bla = new URL ("https://" + this.host + file);
      HttpURLConnection blacon = (HttpURLConnection)bla.openConnection ();
     // HttpURLConnection
      blacon.setRequestMethod ("POST");
      blacon.setDoOutput (true);
      blacon.setDoInput (true);
      blacon.setRequestProperty ("Content-type", "application/x-www-form-urlencoded");
      DataOutputStream io1 = new DataOutputStream (blacon.getOutputStream ());
      io1.writeBytes (arg);
      io1.flush ();
      io1.close ();
      DataInputStream io2 = new DataInputStream (blacon.getInputStream ());
      String str;
    while (null != ((str = io2.readLine())))
    System.out.println (str);
    //textArea.appendText (str + "\n");
io2.close ();It's not the purest code, but for sake of testing.
However, I've got no proof what-so-ever that it really is posting something, for I just get the page as if I were just doing a get request without the post args...

Similar Messages

  • Posting XML via HTTP post returns "Envelope missing in SOAP message header"

    Hi,
    I am trying to post a simple XML message directly to the integration server using an html document, where the form that contains the XML message is a simple
    <b><FORM action="http://servername:8000/sap/xi/engine?type=entry" method="post"></b>
    So, I add my xml message like this:
    <?xml version="1.0" encoding="UTF-8">
    <ns:PlantMaintenanceMessageType xmlns:ns="http://sap.com/demo/plantmaintenance">
          <EquipmentID>SLIEQUIP5</EquipmentID>
          <FunctionalLocation>KB</FunctionalLocation>
          <Date/>
          <Time/>
    </ns:PlantMaintenanceMessageType>
    but I get a message back from the Integration Server as:
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIProtocol</SAP:Category>
      <SAP:Code area="PARSER">ITEM_MISSING</SAP:Code>
      <SAP:P1>Envelope</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <b><SAP:Stack>XML tag Envelope missing in SOAP message header (SAP XI Extension)</SAP:Stack></b>
      </SAP:Error>
    Seems like I am missing the Envelope so my Integration Server can understand my post. What does the Envelope look like or should conatain so that the Integration Server accepts my XML file ?
    Thanks !

    This is the trace
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">
      <Trace level="1" type="T">Party normalization: sender</Trace>
      <Trace level="1" type="T">Sender scheme external =</Trace>
      <Trace level="1" type="T">Sender agency external =</Trace>
      <Trace level="1" type="T">Sender party external =</Trace>
      <Trace level="1" type="T">Sender party normalized =</Trace>
      <Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
      <Trace level="2" type="T">Request Line = POST /sap/xi/engine?type=entry HTTP/1.1</Trace>
      <Trace level="2" type="T">Host = sapqxh:8020</Trace>
      <Trace level="2" type="T">Server protocol = HTTP/1.1</Trace>
      <Trace level="2" type="T">Remote address = 10.228.137.106</Trace>
      <Trace level="1" type="T">COMMIT is done by XMB !</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">XMB was called with external pipeline PID = ENTRY</Trace>
      <Trace level="3" type="T">Getting type of XMB...</Trace>
      <Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE" />
      <Trace level="2" type="T">XMB kind = CENTRAL</Trace>
      <Trace level="3" type="T">Start pipeline found</Trace>
      <Trace level="2" type="T">Switch to external start pipeline PID = CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV">
      <Trace level="3" type="T">No triggers found. OK.</Trace>
      </Trace>
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">XMB entry processing</Trace>
      <Trace level="3" type="T">system-ID = QXH</Trace>
      <Trace level="3" type="T">client = 220</Trace>
      <Trace level="3" type="T">language = E</Trace>
      <Trace level="3" type="T">user = PISUPER</Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:19:04Z CET</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Message-GUID = 4880474945AE67E2E10000000AE4896A</Trace>
      <Trace level="1" type="T">PLNAME = CENTRAL</Trace>
      <Trace level="1" type="T">QOS = EO</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">QOS = EO</Trace>
      <Trace level="3" type="T">Message-GUID = 4880474945AE67E2E10000000AE4896A</Trace>
      <Trace level="1" type="T">Get definition of external pipeline = CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
      <Trace level="3" type="T">External PLID = CENTRAL</Trace>
      <Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
      </Trace>
      <Trace level="1" type="T">Get definition of internal pipeline = SAP_CENTRAL</Trace>
      <Trace level="3" type="T">Generate prefixed queue name</Trace>
      <Trace level="1" type="T">Queue name : XBTL0000</Trace>
      <Trace level="1" type="T">Generated prefixed queue name = XBTL0000</Trace>
      <Trace level="1" type="T">Schedule message in qRFC environment</Trace>
      <Trace level="3" type="T">Setup qRFC Scheduler</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="3" type="T">Call qRFC .... MsgGuid = 4880474945AE67E2E10000000AE4896A</Trace>
      <Trace level="3" type="T">Call qRFC .... Version = 000</Trace>
      <Trace level="3" type="T">Call qRFC .... Pipeline = CENTRAL</Trace>
      <Trace level="3" type="T">OK.</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Going to persist message</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="3" type="T">Version number = 000</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 001</Trace>
      <Trace level="3" type="T">Message version 000</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      <Trace level="1" type="T">--start sender interface action determination</Trace>
      <Trace level="1" type="T">select interface MIOA_US139_EmployeeData*</Trace>
      <Trace level="1" type="T">select interface namespace urn:abbott-com:US139</Trace>
      <Trace level="1" type="T">found interface MIOA_US139_EmployeeData</Trace>
      <Trace level="1" type="T">found action ARCH</Trace>
      <Trace level="1" type="T">set interface action to ARCH</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE">
      <Trace level="3" type="T">Trace object available again now. OK.</Trace>
      <Trace level="3" type="T">Message was read from persist layer. OK.</Trace>
      <Trace level="3" type="T">Message properties in XMB object were setup. OK.</Trace>
      <Trace level="3" type="ToDo">Make sure we catch exceptions in persist read</Trace>
      <Trace level="3" type="ToDo">Tracing obj. not avail. before return of CL_XMS_MAIN-PERSIST_READ_MESSAGE</Trace>
      </Trace>
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">message version successfully read from persist version= 000</Trace>
      <Trace level="2" type="T">Increment log sequence to 001</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="3" type="T">system-ID = QXH</Trace>
      <Trace level="3" type="T">client = 220</Trace>
      <Trace level="3" type="T">language = E</Trace>
      <Trace level="3" type="T">user = PISUPER</Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:19:08Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
      <Trace level="3" type="T">External PLID = CENTRAL</Trace>
      <Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
      </Trace>
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline attributes</Trace>
      <Trace level="3" type="T">PID = SAP_CENTRAL</Trace>
      <Trace level="3" type="T">ENABLE = 1</Trace>
      <Trace level="3" type="T">TRACELEVEL = 0</Trace>
      <Trace level="3" type="T">EXEMODE = A</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline elements</Trace>
      <Trace level="3" type="T">ELEMPOS = 0001</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0002</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_INTERFACE_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0003</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0004</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_MAPPING_REQUEST</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0007</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_OUTBOUND_BINDING</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0008</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_CALL_ADAPTER</Trace>
      <Trace level="3" type="T">PLSRVTYPE = =SWITCH=</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0009</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_MAPPING_RESPONSE</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T" />
      <Trace level="1" type="Timestamp">2008-07-18T14:19:08Z CET Begin of pipeline processing PLSRVID = CENTRAL</Trace>
    - <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">
      <Trace level="1" type="Timestamp">2008-07-18T14:19:08Z CET Start of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="3" type="T">Calling pipeline service: PLSRV_RECEIVER_DETERMINATION</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
      <Trace level="3" type="T">P_CLASS = CL_RD_PLSRV</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      <Trace level="2" type="T">Start without given receiver</Trace>
      <Trace level="2" type="T">Classic Receiver Determination via Rules.</Trace>
      <Trace level="2" type="T">Check conditions for rule line no. 1</Trace>
      <Trace level="2" type="T">...valid Receiver w/o Condition: - BS_AIMS</Trace>
      <Trace level="2" type="T">No Receiver found behaviour: 0</Trace>
      <Trace level="2" type="T">Number of Receivers:1</Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:19:08Z CET End of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 001</Trace>
      <Trace level="3" type="T">Message version 001</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
    - <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">
      <Trace level="1" type="Timestamp">2008-07-18T14:19:11Z CET Start of pipeline service processing PLSRVID= PLSRV_INTERFACE_DETERMINATION</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="3" type="T">Calling pipeline service: PLSRV_INTERFACE_DETERMINATION</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_INTERFACE_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
      <Trace level="3" type="T">P_CLASS = CL_ID_PLSRV</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      <Trace level="2" type="T">Check conditions for (Inb: Party Srvc If) BS_AIMS MIIA_US139_EmployeeData</Trace>
      <Trace level="2" type="T">...valid InbIf without Condition: MIIA_US139_EmployeeData</Trace>
      <Trace level="2" type="T">Number of receiving Interfaces:1</Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:19:11Z CET End of pipeline service processing PLSRVID= PLSRV_INTERFACE_DETERMINATION</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 002</Trace>
      <Trace level="3" type="T">Message version 002</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT" />
    - <!--  ************************************
      -->
      <Trace level="1" type="Timestamp">2008-07-18T14:19:14Z CET Start of pipeline service processing PLSRVID= PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="3" type="T">Calling pipeline service: PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
      <Trace level="3" type="T">P_CLASS = CL_XMS_PLSRV_RECEIVER_SPLIT</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
      <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Case handling for different plsrv_ids PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
      <Trace level="2" type="T">got property produced by receiver determination</Trace>
      <Trace level="1" type="T">number of receivers: 1</Trace>
      <Trace level="1" type="T">Single-receiver split case</Trace>
      <Trace level="1" type="T">Post-split internal queue name = XBTM0000</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Persisting single message for post-split handling</Trace>
      <Trace level="1" type="T" />
      <Trace level="1" type="T">Going to persist message + call qRFC now...</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 012</Trace>
      <Trace level="3" type="T">Message version 003</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE">
      <Trace level="3" type="T">Trace object available again now. OK.</Trace>
      <Trace level="3" type="T">Message was read from persist layer. OK.</Trace>
      <Trace level="3" type="T">Message properties in XMB object were setup. OK.</Trace>
      <Trace level="3" type="ToDo">Make sure we catch exceptions in persist read</Trace>
      <Trace level="3" type="ToDo">Tracing obj. not avail. before return of CL_XMS_MAIN-PERSIST_READ_MESSAGE</Trace>
      </Trace>
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">message version successfully read from persist version= 004</Trace>
      <Trace level="2" type="T">Increment log sequence to 005</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="3" type="T">system-ID = QXH</Trace>
      <Trace level="3" type="T">client = 220</Trace>
      <Trace level="3" type="T">language = E</Trace>
      <Trace level="3" type="T">user = PISUPER</Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:19:20Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID">
      <Trace level="3" type="T">External PLID = CENTRAL</Trace>
      <Trace level="3" type="T">Internal PLID = SAP_CENTRAL</Trace>
      </Trace>
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline attributes</Trace>
      <Trace level="3" type="T">PID = SAP_CENTRAL</Trace>
      <Trace level="3" type="T">ENABLE = 1</Trace>
      <Trace level="3" type="T">TRACELEVEL = 0</Trace>
      <Trace level="3" type="T">EXEMODE = A</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline elements</Trace>
      <Trace level="3" type="T">ELEMPOS = 0001</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0002</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_INTERFACE_DETERMINATION</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0003</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_RECEIVER_MESSAGE_SPLIT</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0004</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_MAPPING_REQUEST</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0007</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_OUTBOUND_BINDING</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0008</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_CALL_ADAPTER</Trace>
      <Trace level="3" type="T">PLSRVTYPE = =SWITCH=</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">ELEMPOS = 0009</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_MAPPING_RESPONSE</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">FL_DUMMY =</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T" />
      <Trace level="1" type="Timestamp">2008-07-18T14:19:20Z CET Begin of pipeline processing PLSRVID = CENTRAL</Trace>
      <Trace level="1" type="T">Start with pipeline element PLEL= 5EC3C53B4BB7B62DE10000000A1148F5</Trace>
    - <Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST">
      <Trace level="1" type="Timestamp">2008-07-18T14:19:20Z CET Start of pipeline service processing PLSRVID= PLSRV_MAPPING_REQUEST</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="3" type="T">Calling pipeline service: PLSRV_MAPPING_REQUEST</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_MAPPING_REQUEST</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
      <Trace level="3" type="T">P_CLASS = CL_MAPPING_XMS_PLSRV3</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV">
      <Trace level="2" type="T">......attachment XI_Context not found</Trace>
      <Trace level="3" type="T">Mapping already defined in interface determination</Trace>
      <Trace level="3" type="T">Object ID of Interface Mapping 3CCA7AE76D3F33F19F8D7A8DAD494E65</Trace>
      <Trace level="3" type="T">Version ID of Interface Mapping C387A5F00F8B11DCAB84C751AAE12E82</Trace>
      <Trace level="1" type="T">Interface Mapping urn:abbott-com:US139 IM_US139_EmployeeData</Trace>
      <Trace level="3" type="T">Mapping Steps 1 JAVA com/sap/xi/tf/_MM_US139_EmployeeData_</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="2" type="T">Mode 0</Trace>
      <Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_MM_US139_EmployeeData_.</Trace>
      <Trace level="3" type="T">Load c387a5f0-0f8b-11dc-ab84-c751aae12e82, urn:abbott-com:US139, -1, com/sap/xi/tf/_MM_US139_EmployeeData_.class.</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_MM_US139_EmployeeData_.class (urn:abbott-com:US139, -1) in swcv c387a5f0-0f8b-11dc-ab84-c751aae12e82.</Trace>
      <Trace level="3" type="T">Loaded class com.sap.xi.tf._MM_US139_EmployeeData_</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_US139_EmployeeData_</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_MM_US139_EmployeeData_ completed. (executeStep() of com.sap.xi.tf._MM_US139_EmployeeData_</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:22:07Z CET End of pipeline service processing PLSRVID= PLSRV_MAPPING_REQUEST</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 005</Trace>
      <Trace level="3" type="T">Message version 005</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
    - <Trace level="1" type="B" name="PLSRV_OUTBOUND_BINDING">
      <Trace level="1" type="Timestamp">2008-07-18T14:22:12Z CET Start of pipeline service processing PLSRVID= PLSRV_OUTBOUND_BINDING</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="3" type="T">Calling pipeline service: PLSRV_OUTBOUND_BINDING</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_OUTBOUND_BINDING</Trace>
      <Trace level="3" type="T">PLSRVTYPE =</Trace>
      <Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
      <Trace level="3" type="T">P_CLASS = CL_XMS_PLSRV_OUTBINDING</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_OUTBINDING-ENTER_PLSRV">
      <Trace level="2" type="T">O U T B O U N D - B I N D I N G</Trace>
      <Trace level="2" type="T">Cache Content is up to date</Trace>
      <Trace level="2" type="T">determine OUTBOUND BINDING for:</Trace>
      <Trace level="2" type="T">-QEHCLNT230</Trace>
      <Trace level="2" type="T">-BS_AIMS</Trace>
      <Trace level="2" type="T">urn:abbott-com:US139.MIIA_US139_EmployeeData</Trace>
      <Trace level="2" type="T">Channel found: - BS_AIMS - CC_BS_AIMS_File_Out_09</Trace>
      <Trace level="2" type="T">no header mapping defined</Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="Timestamp">2008-07-18T14:22:12Z CET End of pipeline service processing PLSRVID= PLSRV_OUTBOUND_BINDING</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 006</Trace>
      <Trace level="3" type="T">Message version 006</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="1" type="B" name="PLSRV_CALL_ADAPTER" />
    - <!--  ************************************
      -->
      <Trace level="1" type="Timestamp">2008-07-18T14:22:18Z CET Start of pipeline service processing PLSRVID= PLSRV_CALL_ADAPTER</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Calling pipeline service: PLSRV_CALL_ADAPTER</Trace>
      <Trace level="3" type="T">Reading Pipeline-Service specification...</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_CALL_ADAPTER</Trace>
      <Trace level="3" type="T">PLSRVTYPE = =SWITCH=</Trace>
      <Trace level="3" type="T">ADRESSMOD = SD</Trace>
      <Trace level="3" type="T">P_CLASS =</Trace>
      <Trace level="3" type="T">P_IFNAME =</Trace>
      <Trace level="3" type="T">P_METHOD =</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Unknown channel type: File</Trace>
      <Trace level="3" type="T" />
      <Trace level="3" type="T">Pipeline service specification (table SXMSPLSRV)</Trace>
      <Trace level="3" type="T">PLSRVID = PLSRV_CALL_ADAPTER</Trace>
      <Trace level="3" type="T">PLSRVTYPE = AENGINE</Trace>
      <Trace level="3" type="T">ADRESSMOD = SD</Trace>
      <Trace level="3" type="T">P_CLASS = CL_XMS_PLSRV_IE_ADAPTER</Trace>
      <Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
      <Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
      <Trace level="3" type="T">FL_LOG =</Trace>
      <Trace level="3" type="T">FL_DUMMY = 0</Trace>
      <Trace level="3" type="T" />
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_IE_ADAPTER-ENTER_PLSRV">
      <Trace level="3" type="T">Channel for adapter engine: File</Trace>
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_CALL_XMB-CALL_XMS_HTTP">
      <Trace level="2" type="T">old values in cache (no lock found) - start reading from SLD</Trace>
      <Trace level="1" type="T">error reading SAP_XIAdapterFramework from SLD</Trace>
      <Trace level="2" type="T">Adapter Framework(s) found</Trace>
      <Trace level="2" type="T">Service Port(s) found - take first one</Trace>
      <Trace level="2" type="T">URL found</Trace>
      <Trace level="2" type="T">Get logon data for adapter engine (SAI_AE_DETAILS_GET):</Trace>
      <Trace level="3" type="T">URL = http://sapqxh:52000/MessagingSystem/receive/AFW/XI</Trace>
      <Trace level="3" type="T">User = PIISUSER</Trace>
      <Trace level="3" type="T">Cached =</Trace>
      <Trace level="3" type="T">Creating HTTP-client</Trace>
      <Trace level="3" type="T">HTTP-client: creation finished</Trace>
      <Trace level="3" type="T">Security: Basic authentication</Trace>
      <Trace level="3" type="T">Serializing message object...</Trace>
      <Trace level="3" type="T">HTTP-client: sending http-request...</Trace>
      <Trace level="3" type="T">HTTP-client: request sent</Trace>
      <Trace level="3" type="T">HTTP-client: Receiving http-response...</Trace>
      <Trace level="3" type="T">HTTP-client: response received</Trace>
      <Trace level="3" type="T">HTTP-client: checking status code...</Trace>
      <Trace level="3" type="T">HTTP-client: status code = 200</Trace>
      <Trace level="3" type="T">Deserializing message object...</Trace>
      <Trace level="1" type="T">Empty response received!</Trace>
      <Trace level="3" type="System_Error">HTTP-client: error response=</Trace>
      <Trace level="3" type="T">HTTP-client: closing...</Trace>
      </Trace>
      </Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 007</Trace>
      <Trace level="3" type="T">Message version 007</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 008</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>

  • Uploading big files via http post to XDB table

    Hello,
    I ve created a web form for to upload files as blobs to the database using XML DB, DBPS_EPG package and preconfigured DAD.
    The issue is that small files (~10kb) are being uploaded ok, but file which is 100K during http post returns connection reset from the server side.
    To my opinion there might be some max file size parameter for oracle server to accept during oracle listener tcp connection (as apach has maxrequestlimit).
    Is there any workaround for to load large files to the XDB table via webform?
    Here is a piece of code:
    CREATE USER web IDENTIFIED BY web_upload;
    ALTER USER web DEFAULT TABLESPACE XML_DATA;
    ALTER USER web QUOTA UNLIMITED ON XML_DATA;
    ALTER USER web TEMPORARY TABLESPACE TEMP;
    GRANT CONNECT, ALTER SESSION TO web;
    GRANT CREATE TABLE, CREATE PROCEDURE TO web;
    ALTER SESSION SET CURRENT_SCHEMA = XDB;
    BEGIN DBMS_EPG.CREATE_DAD('WEB', '/upload/*'); END;
    BEGIN
        DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'database-username', 'WEB');
        DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'document-table-name', 'uploads');
        DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'nls-language', '.al32utf8');
        DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'default-page', 'upload');
        COMMIT;
    END; 
    ALTER SESSION SET CURRENT_SCHEMA = SYS;
    CREATE TABLE web.uploads (
        name VARCHAR2(256) NOT NULL
            CONSTRAINT pk_uploads PRIMARY KEY,
        mime_type VARCHAR2(128),
        doc_size NUMBER,
        dad_charset VARCHAR2(128),
        last_updated DATE,
        content_type VARCHAR2(128) DEFAULT 'BLOB',
        blob_content BLOB
    CREATE OR REPLACE PROCEDURE web.upload
    AS
      url VARCHAR2(256) := 'http://demo.test.com:9090/upload/uploaded';
    BEGIN
        HTP.P('<html>');
        HTP.P('<head>');
        HTP.P('  <title>Upload</title>');
        HTP.P('</head>');
        HTP.P('<body>');
        HTP.P('  <h1>Upload</h1>');
        HTP.P('  <form method="post"');
        HTP.P('      action="' || url || '"');
        HTP.P('      enctype="multipart/form-data">');
        HTP.P('    <p><input type="file" name="binaryfile" /></p>');
        HTP.P('    <p><input type="file" name="binaryfile" /></p>');
        HTP.P('    <p><button type="submit">Upload</button></p>');
        HTP.P('  </form>');
        HTP.P('</body>');
        HTP.P('</html>');
    END;
    CREATE OR REPLACE PROCEDURE web.uploaded (
        binaryfile OWA.VC_ARR
    AS
    BEGIN
        HTP.P('<html>');
        HTP.P('<head>');
        HTP.P('  <title>Uploaded</title>');
        HTP.P('</head>');
        HTP.P('<body>');
        HTP.P('  <h1>Uploaded</h1>');
        FOR i IN 1 .. binaryfile.COUNT LOOP
            IF binaryfile(i) IS NOT NULL THEN
                HTP.P('  <p>File: ' || binaryfile(i) || '</p>');
            END IF;
        END LOOP;
        HTP.P('</body>');
        HTP.P('</html>');
    END;
    /帖子经 anatoly编辑过

    Welcome to Apple Discussions!
    Much of what is available on Bittorrent is not legal, beta, or improperly labelled versions. If you want public domain software, see my FAQ*:
    http://www.macmaps.com/macosxnative.html#NATIVE
    for search engines of legitimate public domain sites.
    http://www.rbrowser.com/ has a light mode that supports binary without SSH security.
    http://rsug.itd.umich.edu/software/fugu/ has ssh secure FTP.
    Both I find are quick and a lot more reliable than Fetch. I know Fetch used to be the staple FTP program, but it grew too big for my use.
    - * Links to my pages may give me compensation.

  • Specify file name of the document returned on the HTTP post

    Hello,
    we are submitting a PDF form by calling submitForm function:
    doc.submitForm
            cURL: "http://localhost/script",
            cSubmitAs: "XML"
    The server returnes data of type "Content-type: application/pdf" and as a result this aplication/pdf data is displayed in a new window in Acrobat Reader.
    The document in new window has name e.g. A9R3347.tmp, is it possible to force some concrete name ?
    We tried to send from server the http header:
    Content-Disposition: attachment; filename=\"custom_name.pdf\"
    or   
    Content-Type: application/pdf;         filename=custom_name.pdf
    but non of this works.
    1/ is it possible to set some custom name of the document, which is returned from a server in response of HTTP Post submit ?
    2/ is it possible to return other kind of data then application/pdf ? ( my tests with AR 9.3 with other formats failed).
    Thanks for any advice.

    See Oracle Metalink,
    ..Oracle Portal Technical Forum,
    ....Subject: PORTAL - uploading files (file attachments) with file names.
    This message thread outlines javascript code that automatically captures the filename during an upload.

  • FindNode returning Null And XML Not Accepting Special Characters

    Hi All,
    i am trying the get the attribute value in the element "ns4:InfoCFDi" using FindNode method, but the method is returning NULL. I used the same code for other sample as well and was successfull. but for this specific XML file(which is below) I am getting a Null.
    i can get till S:Body, but when i try to use FindNode for ":Body/s4:ResponseGeneraCFDi" I get Null value.
    And I used "S:Body/*[local-name()=" | "ns4:ResponseGeneraCFDi" | "]";
    as mentioned in other post but still no success.
    ==>I Have one more question relating to special characters. I need to use characters such as - ó in my XML to read as well as write. When I try to read i am getting XML parse error and when writing, i cannot open the file properly.
    Your help is much appreciated.
    My code is here:
    Local XmlDoc &inXMLDoc, &reqxmldoc;
    Local XmlNode &RecordNode;
    &inXMLDoc = CreateXmlDoc();
    &ret = &inXMLDoc.ParseXmlFromURL("D:\Agnel\Mexico Debit Memo\REALRESPONSE.xml");
    If &ret Then
    &RecordNode = &inXMLDoc.DocumentElement.FindNode("" );
    If &RecordNode.IsNull Then
    Warning MsgGet(0, 0, "Agnel FindNode not found.");
    rem MessageBox(0, "", 0, 0, "FindNode not found");
    Else
    &qrValue = &RecordNode.GetAttributeValue("asignaFolio ");
    Warning MsgGet(0, 0, "asignaFolio." | &qrValue);
    End-If;
    Else
    Warning MsgGet(0, 0, "Error. ParseXmlString");
    End-If;
    XML File:
    - <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    - <S:Body>
    - <ns4:ResponseGeneraCFDi xmlns="http://www.xxl.com/ns/xsd/bf/rxx/52" xmlns:ns2="http://www.sat.gob.mx/cfd/3" xmlns:ns3="http://www.xx/ns/bf/conector/1&quo t; xmlns:ns4="http://www.xx/ns/xsd/bfxx/xx/32&qu ot; xmlns:ns5="http://www.xxcom/ns/xsd/bf/xxxxx&q uot; xmlns:ns6="http://wwwxx.com/ns/referenceID/v1">
    - <ns3:Result version="1">
    <ns3:Message message="Proceso realizado con exito." code="0" />
    </ns3:Result>
    - <ns4:InfoCFDi noCertificadoSAT="20001000000100003992" refId="STORFAC20121022085611" fechaTimbrado="2012-10-22T08:56:45" qr=" "
    uuid="a37a7d92-a17e-49f4-8e4d-51c983587acb" version="3.2" tipo="XML" archivo="xxx" sello="B8WjuhYLouSZJ6LU2EjxZ0a4IKyIENZNBx4Lb4 jkcAk6wA+EM477yz91/iDdsON0jm8xibBfom5hvHsH7ZK1ps3NnAXWr1LW 7ctmGsvYKAMvkCx/yOVzJTKFM2hN+OqCTE0WVfgv690vVy2CDQWKlMxbK+3idwG4t OKCMelrN9c=" fecha="2012-10-22T08:56:44" folio="281" serie="IICC">
    <InfoEspecial valor="Este documento es una representacin impresa de un CFDI." atributo="leyendaImpresion" />
    <InfoEspecial valor="||1.0|a37a7d92-a17e-49f4-8e4d-51c983587acb|2012-10-22T08:56:45|B8WjuhYLouSZJ6LU2EjxZ0a4IKyIENZNBx4Lb4 jkcAk6wA+EM477yz91/iDdsON0jm8xibBfom5hvHsH7ZK1ps3NnAXWr1LW 7ctmGsvYKAMvkCx/yOVzJTKFM2hN+OqCTE0WVfgv690vVy2CDQWKlMxbK+3idwG4t OKCMelrN9c=|20001000000100003992||" atributo="cadenaOriginal" />
    <InfoEspecial valor="Doscientos dieciocho mil cuatrocientos setenta y cinco pesos 00/100 M.N." atributo="totalConLetra" />
    </ns4:InfoCFDi>
    </ns4:ResponseGeneraCFDi>
    </S:Body>
    </S:Envelope>
    TIA

    First of all you have to supply a value you want to search for and this has to be the complete path to the value. You're saying you already tried that, but can you paste the code which you used for that? I don't see the path mentioned in the code you posted.
    *FindNode*
    Syntax
    FindNode(Path)
    Description
    Use the FindNode method to return a reference to an XmlNode.
    The path is specified as the list of tag names, to the node that you want to find, each separated by a slash (/).
    Parameters
    Path
    Specify the tag names up to and including the name of the node that you want returned, starting with a slash and each separated by a slash (/). This is known as the XPath query language.>
    Another option would be this snippet of code:
    &InfoCFDiArray = GetElementsByTagName("ns4:InfoCFDi");
    &InfoCFDiNode = &InfoCFDiArray [1];
    &attValue = &InfoCFDiNode.GetAttributeValue("noCertificadoSAT")
    Warning(&attValue);
    It creates an array of XML Nodes which match the name "ns4:InfoCFDi". Since there's only one in the XML it's safe to assume it will be the one and only node in the array. I've assigned that node to the variable &InfoCFDiNode and use that to retrieve the attribute "noCertificadoSAT" value. The warning message should display the value supplied there.
    Concering the special characters; you will have to change the encoding of the XML. Peoplecode sets this to UTF-8 by default, but doesn't include this in the header. There's a little hack for that somewhere on the web, I'll see if I can find it.

  • In WL6.1 request.getParameter returns NULL for URL parameters that exist

              With the following URL, I get different results between WebLogic 4.5.1 and WebLogic
              6.1:
              http://phx-kmccarthy.medspecialists.net/tsweb/ParametersTest.jsp?apple=macintosh&tree&dog&country=USA
              Weblogic 6.1 returns:
              query string = apple=macintosh&tree&dog&country=USA
              apple = macintosh
              tree = null
              dog = null
              country = USA
              WebLogic 4.5.1 returns:
              query string = apple=macintosh&tree&dog&country=USA
              apple = macintosh
              tree =
              dog =
              country = USA
              here is the jsp...
              <%--
              * ParamtersTest.jsp which shows that empty parameters are ignored in WebLogic
              6.1
              --%>
              <%
              String apple, tree, dog, country;
              apple = request.getParameter("apple");
              tree = request.getParameter("tree");
              dog = request.getParameter("dog");
              country = request.getParameter("country");
              out.println("<br>query string = " + request.getQueryString());
              out.println("<br>apple = " + apple);
              out.println("<br>tree = " + tree);
              out.println("<br>dog = " + dog);
              out.println("<br>country = " + country);
              %>
              From the documentation on the getParameter() method:
              Returns the value of a request parameter as a String, or null if the parameter
              does not exist.
              In my opinion, not existing and being empty are different. Also, every other web
              application environment we've dealt with (including WebLogic 4.5.1) treats them
              as different. If the parameter doesn't have a value, (i.e. ...&tree&dog&...) then
              getParameter() returns the empty string, not null.
              As a result of this we have JSPs that break when running on 6.1.
              

    Found the solution at last. Tomcat servlet container can't handle the chunked transfer-encoding that the J2ME Wireless Toolkit uses when you call outputstream.flush() in midlet. Using outputstream.close() instead of outputstream.flush() will avoid this problem for small requests. For all the codes in the articles on Http Post in Wireless Forum, don't use outputstream.flush() and it will run perfectly - Servlet's request.getParameter(parameterName) will work fine in doPost method.

  • Request.getParameter() always returns null

    I have a html file and am trying to retrieve the values from a formin my servlet.
    here is the html code:
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <h1><b>Add DVD</b></h1>
    </head>
    <body>
    <form action="add_dvd.do" method="POST">
    Title:<input type="text" name="title" />
    Year:<input type="text" name="year" />
    Genre: <select name='gselected'>
    <option value='Sci-Fi'>Sci-Fi</option>
    </select>
    or enter new genre:<input type="text" name='gentered' value="" />
    <input type="submit" value="Add DVD" />
    </form>
    </body>
    </html>
    and here is the servlet code:
    public class AddDVDServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // System.out.println("in AddDVDServlet post method");
    List errorMsgs = new LinkedList();
    //retrieve form parameters
    try{
    String title = request.getParameter("title").trim();
    String year = request.getParameter("year").trim();
    *String gentered = request.getParameter("gentered");
    String gselected = request.getParameter("gselected");
    String genre="";
    if("".equals(gentered))
    genre = gselected;
    else
    genre = gentered;
    // System.out.println("parameter retrieved");
    if(!year.matches("\\d\\d\\d\\d"))
    // System.out.println("year not 4 digit long");
    errorMsgs.add("Year must be four digit long");
    if("".equals(title))
    // System.out.println("title not entered");
    errorMsgs.add("Please enter the title of the dvd");
    if("".equals(genre))
    // System.out.println("genre not valid");zdf
    errorMsgs.add("Enter genre.");
    if(! errorMsgs.isEmpty())
    //System.out.println("errors in entry ");
    request.setAttribute("errors",errorMsgs);
    // System.out.println("error attribute set in request");
    RequestDispatcher rd = request.getRequestDispatcher("error.view");
    rd.forward(request, response);
    return;
    //create DVDItem instance
    DVDItem dvd = new DVDItem(title,year,genre);
    request.setAttribute("dvdItem",dvd);
    RequestDispatcher rd = request.getRequestDispatcher("success.view");
    rd.forward(request, response);
    catch(Exception e){
    errorMsgs.add(e.getMessage());
    request.setAttribute("errors",errorMsgs);
    RequestDispatcher rd = request.getRequestDispatcher("error.view");
    rd.forward(request, response);
    e.printStackTrace();
    System.out.println("exception:"+e);
    why does getParameter always return null??? whats wrong?

    I don't know. However, I suspect that because you have a tag with the same name as 'title', its causing a name conflict. Chnage the name to something else. If it works, then that's the likely explaination.

  • FrameGrabbingControl returns null

    In my code i want to grab a frame from a video and displey it in another window.But the problem is that " FrameGrabbingControl fgc =(FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");" returns null.Please help me by pionting out the error. Thanks in advance.
    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.Thread;
    import java.util.*;
    import java.lang.*;
    import java.lang.String;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.io.IOException;
    import java.util.Properties;
    import javax.media.*;
    import java.applet.*;
    import javax.swing. *;
    import javax.swing.border. *;
    import javax.media.datasink. *;
    import javax.media.format. *;
    import javax.media.protocol. *;
    import javax.media.util. *;
    import javax.media.control. *;
    import java.awt.image. *;
    import com.sun.image.codec.jpeg. *;
    import com.sun.media.protocol.vfw.VFWCapture;
    import java.io.*;
    import javax.media.control.FrameGrabbingControl;
    //import com.sun.media.util.JMFSecurity;
    * This is a Java Applet that demonstrates how to create a simple
    * media player with a media event listener. It will play the
    * media clip right away and continuously loop.
    * <!-- Sample HTML
    * <applet code=SimplePlayerApplet width=320 height=300>
    * <param name=file value="sun.avi">
    * </applet>
    * -->
    public class grabframe extends Applet implements ControllerListener,ActionListener
    static int shotCounter = 1;
    Button button;
    // media Player
    Player player = null;
    // component in which video is playing
    Component visualComponent = null;
    // controls gain, position, start, stop
    Component controlComponent = null;
    // displays progress during download
    Component progressBar = null;
    boolean firstTime = true;
    long CachingSize = 0L;
    Panel panel = null;
    int controlPanelHeight = 0;
    int videoWidth = 0;
    int videoHeight = 0;
    * Read the applet file parameter and create the media
    * player.
    public void init()
    setLayout(new BorderLayout());
         setBackground(Color.white);
         panel = new Panel();
         //panel.setLayout( null );
         add(panel,BorderLayout.SOUTH);
         panel.setBounds(0, 0, 320, 240);
    button=new Button("GRAB FRAME");
              panel.add(button);
              button.addActionListener(this);
         // input file name from html param
         String mediaFile = null;
         // URL for our media file
         MediaLocator mrl = null;//MediaLocator describes the location of the media content while
         URL url = null;//URL specify the location of the media
         // Get the media filename info.
         // The applet tag should contain the path to the
         // source media file, relative to the html page.
         if ((mediaFile = getParameter("file")) == null)
         Fatal("Invalid media file parameter");
    //System.out.println("mediafile :"+mediaFile);
         try
         url = new URL(getDocumentBase(), mediaFile);//return a new URL using an existing URL as reference
    //     System.out.println("url :"+url);
                   mediaFile = url.toExternalForm();//return a string representation of the URL
    //     System.out.println("mediafile :"+mediaFile);
              catch (MalformedURLException mue)
         try
         // Create a media locator from the file name
         if ((mrl = new MediaLocator(mediaFile)) == null)
              Fatal("Can't build URL for " + mediaFile);
         // Create an instance of a player for this media
         try
              player = Manager.createPlayer(mrl);
                   catch (NoPlayerException e)
              System.out.println(e);
              Fatal("Could not create player for " + mrl);
    /* catch (CannotRealizeException e)
              System.out.println(e);
              Fatal("Could not create player for " + mrl);
         // Add ourselves as a listener for a player's events
         player.addControllerListener(this);
              catch (MalformedURLException e)
         Fatal("Invalid media file URL!");
              catch (IOException e)
         Fatal("IO exception creating player for " + mrl);
         // This applet assumes that its start() calls
         // player.start(). This causes the player to become
         // realized. Once realized, the applet will get
         // the visual and control panel components and add
         // them to the Applet. These components are not added
         // during init() because they are long operations that
         // would make us appear unresposive to the user.
    }//end of init
    * Start media file playback. This function is called the
    * first time that the Applet runs and every
    * time the user re-enters the page.
    public void start()
         //$ System.out.println("Applet.start() is called");
    // Call start() to prefetch and start the player.
    if (player != null)
         player.start();
    * Stop media file playback and release resource before
    * leaving the page.
    public void stop()
         //$ System.out.println("Applet.stop() is called");
    if (player != null)
    player.stop();
    player.deallocate();
    public void destroy()
         //$ System.out.println("Applet.destroy() is called");
         player.close();
    * This controllerUpdate function must be defined in order to
    * implement a ControllerListener interface. This
    * function will be called whenever there is a media event
    public synchronized void controllerUpdate(ControllerEvent event)
         // If we're getting messages from a dead player,
         // just leave
         if (player == null)
         return;
         // When the player is Realized, get the visual
         // and control components and add them to the Applet
         if (event instanceof RealizeCompleteEvent)
         if (progressBar != null)
              panel.remove(progressBar);
              progressBar = null;
         int width = 320;
         int height = 0;
         if (controlComponent == null)
              if (( controlComponent = player.getControlPanelComponent()) != null)
                        //controlPanelComponent provides the default user interface for controlling the player
              controlPanelHeight = controlComponent.getPreferredSize().height;
              panel.add(controlComponent);
              height += controlPanelHeight;
         if (visualComponent == null)
              if (( visualComponent = player.getVisualComponent())!= null)
                        //visualComponent provides display component(where the visual media is recorded) of the player
              panel.add(visualComponent,BorderLayout.CENTER);
              Dimension videoSize = visualComponent.getPreferredSize();
              videoWidth = videoSize.width;
              videoHeight = videoSize.height;
              width = videoWidth;
              height += videoHeight;
              visualComponent.setBounds(0, 0, videoWidth, videoHeight);
         panel.setBounds(0, 0, width, height);
         if (controlComponent != null)
              controlComponent.setBounds(0, videoHeight,width, controlPanelHeight);
              controlComponent.invalidate();
         } //end of RearizedCompleteEvent
              else if (event instanceof CachingControlEvent)
         if (player.getState() > Controller.Realizing)
              return;
         // Put a progress bar up when downloading starts,
         // take it down when downloading ends.
         CachingControlEvent e = (CachingControlEvent) event;
         CachingControl cc = e.getCachingControl();
         // Add the bar if not already there ...
         if (progressBar == null)
         if ((progressBar = cc.getControlComponent()) != null)
              panel.add(progressBar);
              panel.setSize(progressBar.getPreferredSize());
              validate();
         } //end of CashingControlEvent
                   else if (event instanceof EndOfMediaEvent)
         // We've reached the end of the media; rewind and
         // start over
         player.setMediaTime(new Time(0));
         player.start();
         } //end of EndOfMediaEvent
                   else if (event instanceof ControllerErrorEvent)
         // Tell TypicalPlayerApplet.start() to call it a day
         player = null;
         Fatal(((ControllerErrorEvent)event).getMessage());
    }//end of ControllerErrorEvent
                   else if (event instanceof ControllerClosedEvent)
         panel.removeAll();
         }//end of ControllerClosedEnent
    }//end of controller update
    void Fatal (String s)
         // Applications will make various choices about what
         // to do here. We print a message
         System.err.println("FATAL ERROR: " + s);
         throw new Error(s); // Invoke the uncaught exception
                   // handler System.exit() is another
                   // choice.
    public void actionPerformed(ActionEvent ae)
    Dimension imageSize = null;
    String str=ae.getActionCommand();
    if(str.equals ("GRAB FRAME"))
    Image photo = grabFrameImage();
         if (photo != null)
    MySnapshot snapshot = new MySnapshot(photo, new Dimension(imageSize));
         else
    System.err.println("Errore : Impossibile grabbare il frame");
    repaint();
    * Grabba un frame dalla webcam @restituisce il frame in un buffer
    public Buffer grabFrameBuffer()
    if (player != null)
         FrameGrabbingControl fgc =(FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
    System.out.println(fgc );
         if (fgc != null)
    return (fgc.grabFrame());
         else
    System.err.println("Errore : FrameGrabbingControl non disponibile");
    return (null);
    else
         System.err.println("Errore nel Player");
    return (null);
    * Converte il buffer frame in un'immagine
    public Image grabFrameImage()
    Buffer buffer = grabFrameBuffer();
    if (buffer != null)
    BufferToImage btoi = new BufferToImage((VideoFormat) buffer.getFormat());
    if (btoi != null)
    Image image = btoi.createImage(buffer);
    if (image != null)
    return (image);
              else
    System.err.println("Errore di conversione Buffer - BufferToImage");
    return (null);
         else
    System.err.println("Errore nella creazione di BufferToImage");
    return (null);
         else
    System.out.println("Errore: buffer vuoto");
    return (null);
    class MySnapshot extends JFrame
    protected Image photo = null;
    protected int shotNumber;
         public MySnapshot(Image grabbedFrame, Dimension imageSize)
    super();
    shotNumber = shotCounter++;
    setTitle("Immagine" + shotNumber);
    photo = grabbedFrame;
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int imageHeight = photo.getWidth(this);
    int imageWidth = photo.getHeight(this);
    setSize(imageSize.width, imageSize.height);
    final FileDialog saveDialog = new FileDialog(this,"Salva immagine", FileDialog.SAVE);
    final JFrame thisCopy = this;
    saveDialog.setFile("Immagine" + shotNumber);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    saveDialog.show();
    String filename = saveDialog.getFile();
    if (filename != null)
    if (saveJPEG(filename))
    JOptionPane.showMessageDialog(thisCopy,"Salvata immagine " + filename);
    setVisible(false);
    dispose();
                             else
    JOptionPane.showMessageDialog(thisCopy,"Errore nel salvataggio di " + filename);
                             else
    setVisible(false);
    dispose();
    setVisible(true);
    public void paint(Graphics g)
    g.drawImage(photo, 0, 0, getWidth(), getHeight(), this);
    public boolean saveJPEG(String filename)
    boolean saved = false;
    BufferedImage bi = new BufferedImage(photo.getWidth(null), photo.getHeight(null), BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = bi.createGraphics();
    g2.drawImage(photo, null, null);
    FileOutputStream out = null;
    try
    out = new FileOutputStream(filename);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
    param.setQuality(1.0f, false);
    encoder.setJPEGEncodeParam(param);
    encoder.encode(bi);
    out.close();
    saved = true;
         catch (Exception ex)
    System.out.println("Errore salvataggio JPEG: "+ ex.getMessage());
    return (saved);
    }//end of class SimplePlayerApplet

    Hmm....
    some of that looks very familiar to me :-)
    http://forum.java.sun.com/thread.jspa?forumID=28&threadID=570463
    1. post your code wrapped in code tags and it'll display it nicely.
    2. post to the Java Media Framework topic,
    I haven't tried JMF within an applet.
    Have you tried getting it working in an application first ?
    That should simplify your debugging to start with.
    I suspect the Player hasn't started yet, or isn't in a realised state.
    regards,
    Owen

  • Sending a dom via http Post

    Hi,
    for some reason unknown to me whenever I try to send a dom via http Post I get the following error:
    org.xml.sax.SAXParseException: The root element is required in a well-formed document.
    This is the source code:
    package com.cyberrein.payunion.transaction;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    //xml lib
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    //weblogic xml lib
    import weblogic.apache.xerces.dom.DocumentImpl;
    import weblogic.apache.xml.serialize.DOMSerializer;
    import weblogic.apache.xml.serialize.XMLSerializer;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    public class Xmltest extends HttpServlet {
    //Initialize global variables
    public void init(ServletConfig config) throws ServletException {
    super.init(config);
    //Process the HTTP Request
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Retrieve transaction data from HttpServletRequest.
    try {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setValidating(false);
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document docIn = db.parse(request.getInputStream());
    String code = "XX";
    String tranID = "000000";
    String message = "This Card Is Invalid. Transaction Discontinued";
    //Output dom
    Document docOut = new DocumentImpl();
    Element e = (Element)docOut.createElement("TransactionResponseData");
    e.setAttribute("Code", code);
    e.setAttribute("TransactionID", tranID);
    e.setAttribute("Message", message);
    docOut.appendChild(e);
    FileOutputStream fos;
    fos = new FileOutputStream("/victory");
    DOMSerializer serX = new XMLSerializer(fos,null);
    serX.serialize(docIn);
    DOMSerializer ser = new XMLSerializer(response.getOutputStream(), null);
         ser.serialize(docOut);
         } catch (Throwable e) {e.printStackTrace();}
    //Get Servlet information
    public String getServletInfo() {
    return "com.cyberrein.payunion.transaction.Xmltest Information";
    package com.cyberrein.payunion.transaction;
    import org.w3c.dom.*;
    import org.apache.xerces.*;
    import org.apache.xerces.dom.*;
    import org.apache.xerces.parsers.*;
    import org.apache.xml.serialize.*;
    import org.xml.sax.*;
    import java.net.*;
    import java.io.*;
    public class CardClient {
    private String sURI;
    public BufferedReader in
    = new BufferedReader(new InputStreamReader(System.in));
    public CardClient(String serverURI) {
    sURI = serverURI;
    public Document test(){
    Document docIn = null;
    try
    //XML Document impl
         docIn = new DocumentImpl();
    //Create the root element
         Element t = docIn.createElement("TransactionData");
    Element k = docIn.createElement("Payunion.com");
    k.appendChild( docIn.createTextNode("North American server") );
    t.appendChild(k);
    //Set attributes
    t.setAttribute("cardnumber", "4444444444444444");
    t.setAttribute("amount", "3000.67");
    t.setAttribute("name", "tolu agbeja");
    t.setAttribute("cvv2", "001");
    t.setAttribute("pu_number", "ejs:pupk:23456");
    t.setAttribute("expirydate", "0903");
    t.setAttribute("address", "100 peachtree industrial");
    t.setAttribute("zipcode", "30329");
    docIn.appendChild(t);
    catch (Throwable te)
    te.printStackTrace();
    return docIn;
    public Document sendRequest(Document doc) {
         Document docOut = null;
         try {
         URL url = new URL("http://" + sURI);
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
         conn.setDoInput(true);
         conn.setDoOutput(true);
         OutputStream out = conn.getOutputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    XMLSerializer ser = new XMLSerializer( out, new OutputFormat("xml", "UTF-8", false) );
    ser.serialize(doc);
    while(!br.ready()){}
         DOMParser parser = new DOMParser();
         parser.parse(new InputSource(br));
         docOut = parser.getDocument();
    catch (Throwable et)
         et.printStackTrace();
         return docOut;
    public static void main(String []args)
    CardClient c = new CardClient("cyber1:7001/xmltest");
    try
    Document doc = c.sendRequest(c.test());
    Element responseMessage = (Element)doc.getElementsByTagName("TransactionResponseData").item(0);
    String message = responseMessage.getAttribute("Message");
    String tranID = responseMessage.getAttribute("TransactionID");
    String code = responseMessage.getAttribute("Code");
    System.out.println(message);
    System.out.println("");
    System.out.println("The Response Code Is: "+code);
    System.out.println("");
    System.out.println("The Transaction ID Is: "+tranID);
    catch(Exception ex)
    ex.printStackTrace();
    All comments will be appreciated!!

    Hi, thanks for your reply i knew the FileUplaod was the way forward.
    I read topics advising to use the FileUpload and tried the following but it did not seem to work ( i get an HTTP Internal Server error when i try that):
    try
    DiskFileUpload upload = new DiskFileUpload();
    boolean isMultipart = FileUpload.isMultipartContent(request);
    if( isMultipart )
    List items = upload.parseRequest( request );
    Iterator iter = items.iterator();
    while( iter.hasNext() )
    FileItem fileItem = ( FileItem ) iter.next();
    File uploadedFile = new File("myreceivedfile.zip");
    fileItem.write( uploadedFile );
    }catch (Exception e)
    System.out.println("RECEIVER: " + e.getMessage());
    Also DiskFileUpload,isMultipartContent and parseRequest have a line going through the middle (horizontal middle).
    Edited by: Overmars08 on Jun 23, 2009 5:35 AM
    Edited by: Overmars08 on Jun 23, 2009 5:36 AM

  • Call thirty party java web service but always return null

    hi
    I call a java web service in my application visual studio 2008 c#, but always return NULL.
    I used Tool Fiddler to monitor the traffic between my client and the web service server, it showed the return is not Null.
    Here is my code, please see if anything I do wrong.
    namespace CanOfficer_THQ_vs_IHQ.TestWebReferenceAppointment {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="AppointmentServiceSoapBinding", Namespace="http://service.ips.salvationarmy.org/")]
    public partial class AppointmentService : Microsoft.Web.Services3.WebServicesClientProtocol {
    private System.Threading.SendOrPostCallback deleteAppOperationCompleted;
    private System.Threading.SendOrPostCallback importAppOperationCompleted;
    private System.Threading.SendOrPostCallback editAppOperationCompleted;
    private bool useDefaultCredentialsSetExplicitly;
    /// <remarks/>
    public AppointmentService() {
    this.Url = global::CanOfficer_THQ_vs_IHQ.Properties.Settings.Default.CanOfficer_THQ_vs_IHQ_TestWebReferenceAppointment_AppointmentService;
    if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
    this.UseDefaultCredentials = true;
    this.useDefaultCredentialsSetExplicitly = false;
    else {
    this.useDefaultCredentialsSetExplicitly = true;
    public new string Url {
    get {
    return base.Url;
    set {
    if ((((this.IsLocalFileSystemWebService(base.Url) == true)
    && (this.useDefaultCredentialsSetExplicitly == false))
    && (this.IsLocalFileSystemWebService(value) == false))) {
    base.UseDefaultCredentials = false;
    base.Url = value;
    public new bool UseDefaultCredentials {
    get {
    return base.UseDefaultCredentials;
    set {
    base.UseDefaultCredentials = value;
    this.useDefaultCredentialsSetExplicitly = true;
    /// <remarks/>
    public event deleteAppCompletedEventHandler deleteAppCompleted;
    /// <remarks/>
    public event importAppCompletedEventHandler importAppCompleted;
    /// <remarks/>
    public event editAppCompletedEventHandler editAppCompleted;
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute(
    RequestNamespace="http://service.ips.salvationarmy.org/",
    ResponseNamespace="http://service.ips.salvationarmy.org/",
    Use=System.Web.Services.Description.SoapBindingUse.Encoded,
    ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string deleteApp([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id) {
    object[] results = this.Invoke("deleteApp", new object[] {
    id});
    return ((string)(results[0]));
    /// <remarks/>
    public void deleteAppAsync(int id) {
    this.deleteAppAsync(id, null);
    /// <remarks/>
    public void deleteAppAsync(int id, object userState) {
    if ((this.deleteAppOperationCompleted == null)) {
    this.deleteAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OndeleteAppOperationCompleted);
    this.InvokeAsync("deleteApp", new object[] {
    id}, this.deleteAppOperationCompleted, userState);
    private void OndeleteAppOperationCompleted(object arg) {
    if ((this.deleteAppCompleted != null)) {
    System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
    this.deleteAppCompleted(this, new deleteAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute(
    RequestNamespace="http://service.ips.salvationarmy.org/",
    ResponseNamespace="http://service.ips.salvationarmy.org/",
    Use=System.Web.Services.Description.SoapBindingUse.Encoded,
    ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string importApp(
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int person,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
    [System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
    object[] results = this.Invoke("importApp", new object[] {
    person,
    name,
    territory,
    location,
    primary,
    start,
    end,
    categories});
    return ((string)(results[0]));
    /// <remarks/>
    public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
    this.importAppAsync(person, name, territory, location, primary, start, end, categories, null);
    /// <remarks/>
    public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
    if ((this.importAppOperationCompleted == null)) {
    this.importAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OnimportAppOperationCompleted);
    this.InvokeAsync("importApp", new object[] {
    person,
    name,
    territory,
    location,
    primary,
    start,
    end,
    categories}, this.importAppOperationCompleted, userState);
    private void OnimportAppOperationCompleted(object arg) {
    if ((this.importAppCompleted != null)) {
    System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
    this.importAppCompleted(this, new importAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute(
    RequestNamespace="http://service.ips.salvationarmy.org/",
    ResponseNamespace="http://service.ips.salvationarmy.org/",
    Use=System.Web.Services.Description.SoapBindingUse.Encoded,
    ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string editApp(
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
    [System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
    object[] results = this.Invoke("editApp", new object[] {
    id,
    name,
    territory,
    location,
    primary,
    start,
    end,
    categories});
    return ((string)(results[0]));
    /// <remarks/>
    public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
    this.editAppAsync(id, name, territory, location, primary, start, end, categories, null);
    /// <remarks/>
    public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
    if ((this.editAppOperationCompleted == null)) {
    this.editAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OneditAppOperationCompleted);
    this.InvokeAsync("editApp", new object[] {
    id,
    name,
    territory,
    location,
    primary,
    start,
    end,
    categories}, this.editAppOperationCompleted, userState);
    private void OneditAppOperationCompleted(object arg) {
    if ((this.editAppCompleted != null)) {
    System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
    this.editAppCompleted(this, new editAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
    /// <remarks/>
    public new void CancelAsync(object userState) {
    base.CancelAsync(userState);
    private bool IsLocalFileSystemWebService(string url) {
    if (((url == null)
    || (url == string.Empty))) {
    return false;
    System.Uri wsUri = new System.Uri(url);
    if (((wsUri.Port >= 1024)
    && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
    return true;
    return false;
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    public delegate void deleteAppCompletedEventHandler(object sender, deleteAppCompletedEventArgs e);
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class deleteAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    private object[] results;
    internal deleteAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
    base(exception, cancelled, userState) {
    this.results = results;
    /// <remarks/>
    public string Result {
    get {
    this.RaiseExceptionIfNecessary();
    return ((string)(this.results[0]));
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    public delegate void importAppCompletedEventHandler(object sender, importAppCompletedEventArgs e);
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class importAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    private object[] results;
    internal importAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
    base(exception, cancelled, userState) {
    this.results = results;
    /// <remarks/>
    public string Result {
    get {
    this.RaiseExceptionIfNecessary();
    return ((string)(this.results[0]));
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    public delegate void editAppCompletedEventHandler(object sender, editAppCompletedEventArgs e);
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class editAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    private object[] results;
    internal editAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
    base(exception, cancelled, userState) {
    this.results = results;
    /// <remarks/>
    public string Result {
    get {
    this.RaiseExceptionIfNecessary();
    return ((string)(this.results[0]));

    Hi;
    I used Fiddler to monitor the process, and it showed the request sent thru web service worked and returned a value, but in my .Net application the return captured as NULL. Could you please look into the code above and the result from Filddler and see if
    you can help.
    thank you.
    REQUEST:
    POST https://159.253.140.178/services/AppointmentService HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.4252)
    Content-Type: text/xml; charset=utf-8
    SOAPAction: ""
    Host: 159.253.140.178
    Content-Length: 1589
    Expect: 100-continue
    Connection: Keep-Alive
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://service.ips.salvationarmy.org/" xmlns:types="http://service.ips.salvationarmy.org/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <soap:Header>
    <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>
    [email protected]
    </wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
    tpi4IPSws!
    </wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soap:Header>
    <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <tns:importApp>
    <person xsi:type="xsd:int">
    169275
    </person>
    <name xsi:type="xsd:string">
    Corps Officer (Cahul-Russia) Test12
    </name>
    <territory xsi:type="xsd:string">
    CAN
    </territory>
    <location xsi:type="xsd:string">
    TEST LOCATION 12
    </location>
    <primary xsi:type="xsd:boolean">
    true
    </primary>
    <start xsi:type="xsd:dateTime">
    2013-05-30T00:00:00
    </start>
    <end xsi:type="xsd:dateTime">
    2014-06-04T00:00:00
    </end>
    <categories href="#id1" />
    </tns:importApp>
    <soapenc:Array id="id1" soapenc:arrayType="xsd:string[1]">
    <Item>
    vpsCat1
    </Item>
    </soapenc:Array>
    </soap:Body>
    </soap:Envelope>
    RESPONSE:
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Content-Type: text/xml;charset=UTF-8
    Content-Length: 232
    Date: Fri, 05 Sep 2014 19:45:22 GMT
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <ns2:importAppResponse xmlns:ns2="http://service.ips.salvationarmy.org/">
    <return>
    OK_572463
    </return>
    </ns2:importAppResponse>
    </soap:Body>
    </soap:Envelope>

  • HTTP post data from the Oracle database to another web server

    Hi ,
    I have searched the forum and the net on this. And yes I have followed the links
    http://awads.net/wp/2005/11/30/http-post-from-inside-oracle/
    http://manib.wordpress.com/2007/12/03/utl_http/
    and Eddie Awad's Blog on the same topic. I was successful in calling the servlet but I keep getting errors.
    I am using Oracle 10 g and My servlet is part of a ADF BC JSF application.
    My requirement is that I have blob table in another DB and our Oracle Forms application based on another DB has to view the documents . Viewing blobs over dblinks is not possible. So Option 1 is to call a procedure passing the doc_blob_id parameter and call the web server passing the parameters.
    The errors I am getting is:
    First the parameters passed returned null. and
    2. Since my servlet directly downloads the document on the response outputStream, gives this error.
    'com.evermind.server.http.HttpIOException: An established connection was aborted by the software in your host machine'
    Any help please. I am running out of time.
    Thanks

    user10264958 wrote:
    My requirement is that I have blob table in another DB and our Oracle Forms application based on another DB has to view the documents . Viewing blobs over dblinks is not possible. Incorrect. You can use remote LOBs via a database link. However, you cannot use a local LOB variable (called a LOB <i>locator</i>) to reference a remote LOB. A LOB variable/locator is a pointer - that pointer cannot reference a LOB that resides on a remote server. So simply do not use a LOB variable locally as it cannot reference a remote LOB.
    Instead provide a remote interface that can deal with that LOB remotely, dereference that pointer on the remote system, and pass the actual contents being pointed at, to the local database.
    The following demonstrates the basic approach. How one designs and implements the actual remote interface, need to be decided taking existing requirements into consideration. I simply used a very basic wrapper function.
    SQL> --// we create a database link to our own database as it is easier for demonstration purposes
    SQL> create database link remote_db connect to scott identified by tiger using
      2  '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=dev)(SERVER=dedicated)))';
    Database link created.
    SQL> --// we create a table with a CLOB that we will access via this db link
    SQL> create table xml_files( file_id number, xml_file clob );
    Table created.
    SQL> insert into xml_files values( 1, '<root><text>What do you want, universe?</text></root>' );
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> --// a local select against the table works fine
    SQL> select x.*, length(xml_file) as "SIZE" from xml_files x;
       FILE_ID XML_FILE                                                                                SIZE
             1 <root><text>What do you want, universe?</text></root>                                    53
    SQL> --// a remote select against the table fails as we cannot use remote pointers/locators
    SQL> select * from xml_files@remote_db x;
    ERROR:
    ORA-22992: cannot use LOB locators selected from remote tables
    no rows selected
    SQL> //-- we create an interface on the remote db to deal with the pointer for us
    SQL> create or replace function ReturnXMLFile( fileID number, offset integer, amount integer ) return varchar2 is
      2          buffer  varchar2(32767);
      3  begin
      4          select
      5                  DBMS_LOB.SubStr( x.xml_file, amount, offset )
      6                          into
      7                  buffer
      8          from    xml_files x
      9          where   x.file_id = fileID;
    10 
    11          return( buffer );
    12  end;
    13  /
    Function created.
    SQL> --// we now can access the contents of the remote LOB (only in 4000 char chunks using this example)
    SQL> select
      2          file_id,
      3          ReturnXMLFile@remote_db( x.file_id, 1, 4000 ) as "Chunk_1"
      4  from       xml_files@remote_db x;
       FILE_ID Chunk_1
             1 <root><text>What do you want, universe?</text></root>
    SQL> --// we can also copy the entire remote LOB across into a local LOB and use the local one
    SQL> declare
      2          c               clob;
      3          pos             integer;
      4          iterations      integer;
      5          buf             varchar2(20);   --// small buffer for demonstration purposes only
      6  begin
      7          DBMS_LOB.CreateTemporary( c, true );
      8 
      9          pos := 1;
    10          iterations := 1;
    11          loop
    12                  buf := ReturnXMLFile@remote_db( 1, pos, 20 );
    13                  exit when buf is null;
    14                  pos := pos + length(buf);
    15                  iterations := iterations + 1;
    16                  DBMS_LOB.WriteAppend( c, length(buf), buf );
    17          end loop;
    18 
    19          DBMS_OUTPUT.put_line( 'Copied '||length(c)||' byte(s) from remote LOB' );
    20          DBMS_OUTPUT.put_line( 'Read Iterations: '||iterations );
    21          DBMS_OUTPUT.put_line( 'LOB contents (1-4000):'|| DBMS_LOB.SubStr(c,4000,1) );
    22 
    23          DBMS_LOB.FreeTemporary( c );
    24  end;
    25  /
    Copied 53 byte(s) from remote LOB
    Read Iterations: 4
    LOB contents (1-4000):<root><text>What do you want, universe?</text></root>
    PL/SQL procedure successfully completed.
    SQL> The concern is the size of the LOB. It does not always make sense to access the entire LOB in the database. What if that LOB is a 100GB in size? Irrespective of how you do it, selecting that LOB column from that table will require a 100GB of data to be transferred from the database to your client.
    So you need to decide WHY you want the LOB on the client (which will be the local PL/SQL code in case of dealing with a LOB on a remote database)? Do you need the entire LOB? Do you need a specific piece from it? Do you need the database to first parse that LOB into a more structured data struct and then pass specific information from that struct to you? Etc.
    The bottom line however is that you can use remote LOBs. Simply that you cannot use a local pointer variable to point and dereference a remote LOB.

  • Graphics returning null in one place, but not another.

    If you want to compile and run my program.... you can get all the files here:
    http://s94182144.onlinehome.us/randomstuff/files.zip
    (The main classes you'll need to look at are DrawingCanvas, Trig and GraphEngine)
    Here's a visual just in case:
    http://s94182144.onlinehome.us/randomstuff/graph.jpg
    When I click the "Graph It" button, I'm sending all those variables in the window to another class. Except the method I need to call is passed Graphics g... and thus, I needed to create a graphics variable. But it's returning null.
    Here is my code in GraphEngine, which runs when a button is clicked. You'll notice for Graph It... I created a Graphics variable... this returns null. Except you'll also notice I do the same thing for "Clear"... but this works.
    NOTE: I was getting mad so I named some methods not so nicely :p .... you may notice they are different in my files.
         public void actionPerformed(ActionEvent e)
              userDisplay=e.getActionCommand();
              if(userDisplay.equals("Draw"))
                   String progChoice=grapher.graphType.getSelectedItem();
                   System.out.println(progChoice);
                   if(progChoice.equals("Lines"))
                        grapher.allButtons[0].enable();
                        draw();
                   else if(progChoice.equals("Scatter Plot"))
                        lineOfBestFit();
              else if(userDisplay.equals("Graph It"))
                   Trig.graphThisStuff();
                   Graphics g = canvas.getGraphics();
                   canvas.trig(g);
               else if(userDisplay.equals("Clear"))
                    Graphics g = canvas.getGraphics();
                   System.out.println(g);
                    canvas.clear(g);
            else if(userDisplay.equals("Reset"))
                Trig.restartThis();   
              else if(userDisplay.equals("Credits"))
                showInstructionsFrame();
            else if(userDisplay.equals("Help"))
                showHelpFrame();   
            else if(userDisplay.equals("Create Sinusodial Graph"))
                showTrigFrame();   

    1. Do you expect forum members to download and unzip your code? Good luck...
    2. Inside almost every "big" problem is a small one trying to get out. Write a minimal program
    demonstrating your problem (say <50 lines) and post that. The shorter code and the easier it
    is to copy, paste and run, the more forum members will actually give it a go.
    That being said, you problem is that you are using Component's getGraphics at all. Don't use it.
    It doesn't work very well -- they rendering you do is temporary, if you iconify and restore your
    window your changes will disappear (sometimes even moving another window past yours will do this!).
    What should you do instead? Put all your rendering code in paintComponent (or subroutines
    it calls). Changes in state of your app should trigger a call to repaint (or you will call it directly).
    Repainting will eventually cause your paintComponent to be called.

  • HTTP POST is killing me, please help ...

    Hello,
    I am trying to send an XML file to a php script sitting on a server. I want to do this by HTTP POST through a Java Application.
    I have the following code developed and haven't an iota why the php script won't pick up the XML file.
    If anyone has any idea, suggestions, I will be glad to hear them.
    Random random = new Random();
    final String CONTENT_BOUNDARY = "------------------------" + random.nextInt();
    public String postInvoice(String strFilePathName) {
    HttpURLConnection httpsUrlConnection = null;
    StringBuffer strBuffer = new StringBuffer();
    try {
    // Using the File name passed in, setup FileInputStream Object
    // to be used to get data to write to URL
    File fileToPost = new File(strFilePathName);
    //FileInputStream fis1 = new FileInputStream(fileToPost);
    // Get the actual filename for setting in the form
    String strFileName = fileToPost.getName();
    URL urlPostTo = new URL("http://server/some.php");
    httpsUrlConnection = (HttpURLConnection)urlPostTo.openConnection();
    // Setup RandomAccessFile
    RandomAccessFile rafXML = new RandomAccessFile(strFilePathName, "r");
    httpsUrlConnection.setRequestProperty("REQUEST_METHOD", "POST");
    httpsUrlConnection.setRequestProperty("Accept", "text/xml");
    httpsUrlConnection.setDoOutput(true);
    httpsUrlConnection.setUseCaches(false);
    httpsUrlConnection.setRequestProperty("Content-Type",
    "multipart/form-data");
    Long longTemp = new Long(rafXML.length());
    httpsUrlConnection.setRequestProperty("Content-Length", longTemp.toString());
    PrintWriter pwOut = new PrintWriter (httpsUrlConnection.getOutputStream());
    // Setup a form field
    pwOut.print(CONTENT_BOUNDARY + "\r\n" +
    "Content-Disposition: form-data; name=\"Filename\"; filename=\"" +
    strFileName + "\"\r\nContent-Type: text/xml\r\n\r\n");
    // Send XML contents
    StringBuffer strBufferFile = new StringBuffer();
    long lngFilePointer = 0;
    long lngFileLength = rafXML.length();
    while (lngFilePointer < lngFileLength) {
    String strTemp = rafXML.readLine();
    strBufferFile.append(strTemp);
    lngFilePointer = rafXML.getFilePointer();
    // Write out File Contents
    pwOut.print(strBufferFile.toString());
    pwOut.print("\r\n\r\n" + CONTENT_BOUNDARY + "--\r\n");
    pwOut.flush();
    pwOut.close(); pwOut = null;
    // Once everything is written, call the connect method
    httpsUrlConnection.connect();
    System.out.println("Connected to " + httpsUrlConnection.getURL().getHost());
    BufferedReader br = new BufferedReader(new InputStreamReader(httpsUrlConnection.getInputStream()));
    String strLine;
    while ((strLine = br.readLine()) != null)
    strBuffer.append (strLine);
    strBuffer.append ("\r\n");
    br.close(); br = null;
    System.out.println(strBuffer.toString());
    catch(FileNotFoundException fnfe) {
    System.out.println("FileNotFoundException in HttpPostInvoice : " + fnfe);
    catch (Exception e) {
    System.out.println("Exception in HttpPostInvoice : " + e);
    finally {     
    if (httpsUrlConnection != null) {
    httpsUrlConnection.disconnect();
    return strBuffer.toString();
    }

    Have that application installed and it makes for interesting reading, not sure I understand it all but anyway ..
    Using the code you supplied, this is what is picked up
    POST /some.php HTTP/1.1
    Content-Length: 4844
    User-Agent: Java1.4.0_03
    Host: www.host.com
    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Connection: keep-alive
    Content-type: application/x-www-form-urlencoded
    POST http://server/some.php HTTP/1.0
    Content-Type: multipart/form-data; boundary=-------------------------1736247667
    Accept: text/xml
    Connection: keep-alive
    Content-Length: 4595
    Cache-Control: no-cache
    Pragma: no-cache
    -------------------------1736247667
    Content-Disposition: form-data; name="Filename"; filename="3000001193.xml"
    Content-Type: text/xml
    <?xml version="1.0"?><Order> ... </Order>
    -------------------------1736247667--
    Using my original code this is what the app picked up ...
    POST /some.php HTTP/1.1
    Accept: text/xml
    Content-Type: multipart/form-data; boundary=------------------------1514140045
    Content-Length: 4557
    User-Agent: Java1.4.0_03
    Host: www.host.com
    Connection: keep-alive
    ------------------------1514140045
    Content-Disposition: form-data; name="Filename"; filename="3000001193.xml"
    Content-Type: text/xml
    <?xml version="1.0"?><Order> ... <Order>
    ------------------------1514140045--
    I really don't know what to make of it, as far as I can see the request header is ok, with the response being 200. That means the request is ok, but shouldn't the response be 201 indicating that the file was created?
    Am going to look at what a POST through a HTML form sends and match up that way ...

  • HTTP Post of big files over UMTS stops

    Hi there I modified the code from [this thread|http://forum.java.sun.com/thread.jspa?forumID=256&threadID=451245] to suit the needs of J2ME:
    package some.package.util.http;
    * Original source code: http://forum.java.sun.com/thread.jspa?forumID=256&threadID=451245
    * This source was adapted to meet the requirements of J2ME
    * @author tb
    import java.io.*;
    import java.util.Enumeration;
    import java.util.Vector;
    import javax.microedition.io.Connector;
    import javax.microedition.io.HttpConnection;
    import javax.microedition.io.file.FileConnection;
    * <code>MultiPartFormOutputStream</code> is used to write
    * "multipart/form-data" to a <code>javax.microedition.io.HttpConnection</code> for
    * POSTing.  This is primarily for file uploading to HTTP servers. 
    public class MultiPartFormOutputStream {
    * The line end characters. 
    private static final String NEWLINE = "\r\n";
    * The boundary prefix. 
    private static final String PREFIX = "--";
    * The output stream to write to.
    private DataOutputStream out = null;
    * The multipart boundary string. 
    private String boundary = null;       
    private Vector progressListeners;
    * Creates a new <code>MultiPartFormOutputStream</code> object using
    * the specified output stream and boundary.  The boundary is required
    * to be created before using this method, as described in the
    * description for the <code>getContentType(String)</code> method. 
    * The boundary is only checked for <code>null</code> or empty string,
    * but it is recommended to be at least 6 characters.  (Or use the
    * static createBoundary() method to create one.)
    * @param  os        the output stream
    * @param  boundary  the boundary
    * @see  #createBoundary()
    * @see  #getContentType(String)
    public MultiPartFormOutputStream(OutputStream os, String boundary) {
    if(os == null) {
    throw new IllegalArgumentException("Output stream is required.");
    if(boundary == null || boundary.length() == 0) {
    throw new IllegalArgumentException("Boundary stream is required.");
    this.out = new DataOutputStream(os);
    this.boundary = boundary;
    this.progressListeners=new Vector();
    * Writes an boolean field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, boolean value)
    throws java.io.IOException {
    writeField(name, new Boolean(value).toString());
    * Writes an double field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, double value)
    throws java.io.IOException {
    writeField(name, Double.toString(value));
    * Writes an float field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, float value)
    throws java.io.IOException {
    writeField(name, Float.toString(value));
    * Writes an long field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, long value)
    throws java.io.IOException {
    writeField(name, Long.toString(value));
    * Writes an int field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, int value)
    throws java.io.IOException {
    writeField(name, Integer.toString(value));
    * Writes an short field value.
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, short value)
    throws java.io.IOException {
    Short val = new Short(value);
    writeField(name, val.toString());
    * Writes an char field value. 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String name, char value)
    throws java.io.IOException {
    writeField(name, new Character(value).toString());
    * Writes an string field value.  If the value is null, an empty string
    * is sent (""). 
    * @param  name   the field name (required)
    * @param  value  the field value
    * @throws  java.io.IOException  on input/output errors
    public void writeField(String fieldName, String value)
    throws java.io.IOException {
    if(fieldName == null) {
    throw new IllegalArgumentException("name cannot be null or empty.");
    if(value == null) {
    value = "";
    String contentDisposition = "Content-Disposition: form-data; name=\"" + fieldName + "\"";
    --boundary\r\n
    Content-Disposition: form-data; name="<fieldName>"\r\n
    \r\n
    <value>\r\n
    // write boundary
    out.write(PREFIX.getBytes());
    out.write(boundary.getBytes());
    out.write(NEWLINE.getBytes());
    // write content header
    out.write(contentDisposition.getBytes());
    out.write(NEWLINE.getBytes());
    out.write(NEWLINE.getBytes());
    // write content
    out.write(value.getBytes());
    out.write(NEWLINE.getBytes());
    //out.flush();
    * Writes a file's contents.  If the file is null, does not exists, or
    * is a directory, a <code>java.lang.IllegalArgumentException</code>
    * will be thrown. 
    * @param  name      the field name
    * @param  mimeType  the file content type (optional, recommended)
    * @param  file      the file (the file must exist)
    * @throws  java.io.IOException  on input/output errors
    public void writeFile(String fieldName, String mimeType, FileConnection fileCon)
    throws java.io.IOException {
    if(fileCon == null) {
    throw new IllegalArgumentException("File cannot be null.");
    if(!fileCon.exists()) {
    throw new IllegalArgumentException("File does not exist.");
    if(fileCon.isDirectory()) {
    throw new IllegalArgumentException("File cannot be a directory.");
    writeFile(fieldName, mimeType, fileCon.getPath(), fileCon.openDataInputStream());
    * Writes a input stream's contents.  If the input stream is null, a
    * <code>java.lang.IllegalArgumentException</code> will be thrown. 
    * @param  name      the field name
    * @param  mimeType  the file content type (optional, recommended)
    * @param  fileName  the file name (required)
    * @param  is        the input stream
    * @throws  java.io.IOException  on input/output errors
    public void writeFile(String fieldName, String mimeType,
    String fileName, InputStream is)
    throws java.io.IOException {
    if(is == null) {
    throw new IllegalArgumentException("Input stream cannot be null.");
    if(fileName == null || fileName.length() == 0) {
    throw new IllegalArgumentException("File name cannot be null or empty.");
    String contentDisposition = "Content-Disposition: form-data; name=\"" + fieldName +
    "\"; filename=\"" + fileName + "\"";
    String contentType = "Content-Type: " + mimeType;
    --boundary\r\n
    Content-Disposition: form-data; name="<fieldName>"; filename="<filename>"\r\n
    Content-Type: <mime-type>\r\n
    \r\n
    <file-data>\r\n
    // write boundary
    out.write(PREFIX.getBytes());
    out.write(boundary.getBytes());
    out.write(NEWLINE.getBytes());
    // write content header
    out.write(contentDisposition.getBytes());
    out.write(NEWLINE.getBytes());
    if(mimeType != null) {
    out.write(contentType.getBytes());
    out.write(NEWLINE.getBytes());
    out.write(NEWLINE.getBytes());
    // write content
    byte[] data = new byte[1024];
    int r = 0;
    while((r = is.read(data, 0, data.length)) != -1) {
    out.write(data, 0, r);
    this.updateProgressListeners(data.length);
    // close input stream, but ignore any possible exception for it
    try {
    is.close();
    } catch(Exception e) { e.printStackTrace();}
    out.write(NEWLINE.getBytes());
    //out.flush();
    * Writes the given bytes.  The bytes are assumed to be the contents
    * of a file, and will be sent as such.  If the data is null, a
    * <code>java.lang.IllegalArgumentException</code> will be thrown. 
    * @param  name      the field name
    * @param  mimeType  the file content type (optional, recommended)
    * @param  fileName  the file name (required)
    * @param  data      the file data
    * @throws  java.io.IOException  on input/output errors
    public void writeFile(String fieldName, String mimeType, String fileName, byte[] data)
    throws java.io.IOException {
    if(data == null) {
    throw new IllegalArgumentException("Data cannot be null.");
    if(fileName == null || fileName.length() == 0) {
    throw new IllegalArgumentException("File name cannot be null or empty.");
    String contentDisposition = "Content-Disposition: form-data; name=\"" + fieldName +
    "\"; filename=\"" + fileName + "\"";
    String contentType = "Content-Type: " + mimeType;
    --boundary\r\n
    Content-Disposition: form-data; name="<fieldName>"; filename="<filename>"\r\n
    Content-Type: <mime-type>\r\n
    \r\n
    <file-data>\r\n
    // write boundary
    out.write(PREFIX.getBytes());
    out.write(boundary.getBytes());
    out.write(NEWLINE.getBytes());
    // write content header
    out.write(contentDisposition.getBytes());
    out.write(NEWLINE.getBytes());
    if(mimeType != null) {
    out.write(contentType.getBytes());
    out.write(NEWLINE.getBytes());
    out.write(NEWLINE.getBytes());
    // write content
    out.write(data, 0, data.length);
    out.write(NEWLINE.getBytes());
    //out.flush();
    * Flushes the stream.  Actually, this method does nothing, as the only
    * write methods are highly specialized and automatically flush. 
    * @throws  java.io.IOException  on input/output errors
    public void flush() throws java.io.IOException {
    out.flush();
    * Closes the stream.  <br/>
    * <br/>
    * <b>NOTE:</b> This method <b>MUST</b> be called to finalize the
    * multipart stream.
    * @throws  java.io.IOException  on input/output errors
    public void close() throws java.io.IOException {
    // write final boundary
    out.write(PREFIX.getBytes());
    out.write(boundary.getBytes());
    out.write(PREFIX.getBytes());
    out.write(NEWLINE.getBytes());
    out.flush();
    out.close();
    * Gets the multipart boundary string being used by this stream. 
    * @return  the boundary
    public String getBoundary() {
    return this.boundary;
    * Creates a new <code>javax.microedition.io.HttpConnection</code> object from the
    * specified <code>String</code>.   
    * @return  a <code>javax.microedition.io.HttpConnection</code> object for the URL
    * @throws  java.io.IOException  on input/output errors
    public static HttpConnection createConnection(String url)
    throws java.io.IOException {
    HttpConnection conn = (HttpConnection) Connector.open(url);
    conn.setRequestMethod(HttpConnection.POST);
    return conn;
    * Creates a multipart boundary string by concatenating 20 hyphens (-)
    * and the hexadecimal (base-16) representation of the current time in
    * milliseconds. 
    * @return  a multipart boundary string
    * @see  #getContentType(String)
    public static String createBoundary() {
    return "--------------------" +
    Long.toString(System.currentTimeMillis(), 16);
    * Gets the content type string suitable for the
    * <code>javax.microedition.io.HttpConnection</code> which includes the multipart
    * boundary string.  <br/>
    * <br/>
    * This method is static because, due to the nature of the
    * <code>javax.microedition.io.HttpConnection</code> class, once the output stream
    * for the connection is acquired, it's too late to set the content
    * type (or any other request parameter).  So one has to create a
    * multipart boundary string first before using this class, such as
    * with the <code>createBoundary()</code> method. 
    * @param  boundary  the boundary string
    * @return  the content type string
    * @see  #createBoundary()
    public static String getContentType(String boundary) {
    return "multipart/form-data; boundary=" + boundary;
    public Enumeration getProgressListeners() {
    return progressListeners.elements();
    public void addProgressListener(ProgressListener pl) {
    this.progressListeners.addElement(pl);
    private void updateProgressListeners(int length) {
    for(int i = 0;i<this.progressListeners.size();i++)
    ProgressListener p = (ProgressListener) this.progressListeners.elementAt(i);
    try {
    p.updateProgress(length);
    }catch(IllegalArgumentException ex)
    ex.printStackTrace();
    private void initProgressListeners(int maxValue)
    for(int i = 0;i<this.progressListeners.size();i++)
    ProgressListener p = (ProgressListener) this.progressListeners.elementAt(i);
    p.setMaximum(maxValue);
    {code}
    Modifications I made:
    * Use javax.microedition.io.HttpConnection instead of URLConnection
    * Use String.getBytes() as DataOutputStream.writeBytes(String s) is not available in MIDP
    * Use FileConnection from JSR-75 FileConnection API
    I use it like this:
    {code:java}
    String boundary = MultiPartFormOutputStream.createBoundary();
    //        this.httpCon.setRequestProperty("Accept", "*/*");
    this.httpCon.setRequestMethod(HttpConnection.POST);
    this.httpCon.setRequestProperty("Content-Type", MultiPartFormOutputStream.getContentType(boundary));
    this.httpCon.setRequestProperty("Connection", "Close");
    //          this.httpCon.setRequestProperty("Cache-Control", "no-cache");
    this.multipartOutput = new MultiPartFormOutputStream(this.httpCon.openDataOutputStream(), boundary);
    if(this.progressListener!=null)
    this.multipartOutput.addProgressListener(progressListener);
    this.multipartOutput.writeField("hwid", "");
    this.multipartOutput.writeField("lang", "de-de");
    this.multipartOutput.writeField("guilang","en-gb");
    this.multipartOutput.writeField("hwid", "0000000DECAF");
    this.multipartOutput.writeField("actcode", "masterKey");
    this.multipartOutput.writeField("x1", "-1");
    this.multipartOutput.writeField("y1", "-1");
    this.multipartOutput.writeField("x2", "-1");
    this.multipartOutput.writeField("y2", "-1");
    this.multipartOutput.writeFile("img", "image/jpeg", "testbild.jpg", dataInputStream);
    this.multipartOutput.close();
    this.httpCon.close();
    {code}
    While the code seems to work well with GPRS, I experienced problems with UMTS.
    Here are my test results:
    ||Device||K850i||W910||W910||K850i||K850i||W910||
    |Java Plattform|JP-8|JP-8|JP-8|JP-8|JP-8|JP-8|
    |Dataservice|GPRS|GPRS|GPRS|GPRS|UMTS|UMTS|
    |Carrier|O2-DE|O2-DE|Vodafone-DE|Vodafone-DE|Vodafone-DE|Vodafone-DE|
    |Filesize (Byte)|1.428.077|1.428.077|1.428.077|1.428.077|1.428.078|1.428.079|
    |Upload (Byte)|complete|complete|complete|complete|184320 (113664)|627712 (199680)|
    The problem of partial upload seems only to exist with larger Files (not sure where exactly the lower bound is).
    I hope this was not too much information for a start, but I am currently quite desperate about this bug.
    I could really use some help here. I will also provide you with the results of a test on Nokia S60 phones
    and the results of SE on device debugging.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

    The issue was solved by a firmware upgrade [jumpingjoy]
    Must have been a problem with JP-8. Works as expected on JP-8.2 now.
    ||Device|K850i|     W910|
    ||Firmware     |R1EA037     |R1EA033|
    ||Java Plattform     |JP-8.2     |JP-8.2|
    ||Dataservice     |UMTS     |UMTS|
    ||Carrier     |Vodafone     |Vodafone|
    ||Filesize (Byte)     |1.428.077     |1.428.077|
    ||Upload (Byte)     |complete     |complete|
    HTH
    Edited by: er4z0r on 15.04.2008 17:55
    Edited by: er4z0r on 15.04.2008 17:56
    Edited by: er4z0r on 15.04.2008 17:58

  • DispCache appears to be corrupt. getDispFile() returned null

    Hi all,
    I am deploying web services in production mode on Solaris 8 and Win2K. I get identical
    errors when I invoke the web service from a Java client: "DispCache appears to
    be corrupt. getDispFile() returned null"
    The complete stack trace is posted below.
    The web services work perfectly fine when I use Workshop to deploy within its
    environment.
    WebLogic version 7.0.4.0. Used jwsCompile tool separately on Win2K and Solaris
    to package the ear file to remove any platform dependencies (I noticed while debugging
    the problem that the EJBs generated by the jwsCompile hardcodes the ProjectPath
    and LoaderPath in the deployment descriptor, weird and totally unncessary).
    Any help is highly appreciated.
    Once thing I noticed that WebLogic's web service solution is overly complex to
    deploy in production once developed using Workshop. There is no way in hell I
    can debug this problem, hey it never occurs in the Workshop and there is no other
    debug environment!
    Thanks, Sanjay ----------------------------------------------------------------
    The stack trace (identical from Solaris and Win2K):
    SERVICE FAULT: Code: SOAP-ENV:Server String: DispCache appears to be corrupt.
    getDispFile() returned null. Detail: END SERVICE FAULTweblogic.jws.control.ServiceControlException:
    SERVICE FAULT: Code: SOAP-ENV:Server String: DispCache appears to be corrupt.
    getDispFile() returned null. Detail: END SERVICE FAULT at weblogic.knex.control.ServiceControlImpl.invoke(ServiceControlImpl.java:315)
    at weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:316) at $Proxy123.GetUserAttributes(Unknown
    Source) at EWSWebServiceTest.testGetUserAttributes(EWSWebServiceTest.java:58)
    at java.lang.reflect.Method.invoke(Native Method) at weblogic.knex.dispatcher.DispMethod.invoke(DispMethod.java:211)
    at weblogic.knex.dispatcher.Invocable.invoke(Invocable.java:454) at weblogic.knex.bean.WebBean.invokeBase(WebBean.java:195)
    at weblogic.knex.bean.WebServiceBean.invoke(WebServiceBean.java:70) at weblogic.knex.bean.WebServiceBean_v4x0yn_EOImpl.invoke(WebServiceBean_v4x0yn_EOImpl.java:46)
    at weblogic.knex.bean.WebDispatcherBean.invoke(WebDispatcherBean.java:103) at
    weblogic.knex.bean.RemoteDispatcherBean.invoke(RemoteDispatcherBean.java:127)
    at weblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl.invoke(RemoteDispatcherBean_2c75i3_EOImpl.java:46)
    at weblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl_WLSkel.invoke(Unknown
    Source) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:263)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:230)
    at weblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl_WLStub.invoke(Unknown
    Source) at weblogic.knex.dispatcher.Dispatcher.remoteDispatch(Dispatcher.java:120)
    at weblogic.knex.dispatcher.Dispatcher.dispatch(Dispatcher.java:66) at weblogic.knex.dispatcher.HttpServer.exploreExec(HttpServer.java:458)
    at weblogic.knex.dispatcher.HttpServer.doGet(HttpServer.java:364) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5445)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:780)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3105)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2588)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

    Sanjay,
    Would it be possible for you to send us your application, so that we can
    reproduce the error here. Let me know if you are unable to post on a public
    newsgroup, and we can take it offline.
    I would also suggest you to try using version 8.1, because it offers loads
    of features that make web services development a much more richer and easier
    experience.
    Regards,
    Anurag
    "Sanjay" <[email protected]> wrote in message
    news:[email protected]...
    >
    Hi all,
    I am deploying web services in production mode on Solaris 8 and Win2K. Iget identical
    errors when I invoke the web service from a Java client: "DispCacheappears to
    be corrupt. getDispFile() returned null"
    The complete stack trace is posted below.
    The web services work perfectly fine when I use Workshop to deploy withinits
    environment.
    WebLogic version 7.0.4.0. Used jwsCompile tool separately on Win2K andSolaris
    to package the ear file to remove any platform dependencies (I noticedwhile debugging
    the problem that the EJBs generated by the jwsCompile hardcodes theProjectPath
    and LoaderPath in the deployment descriptor, weird and totallyunncessary).
    >
    Any help is highly appreciated.
    Once thing I noticed that WebLogic's web service solution is overlycomplex to
    deploy in production once developed using Workshop. There is no way inhell I
    can debug this problem, hey it never occurs in the Workshop and there isno other
    debug environment!
    Thanks,Sanjay ----------------------------------------------------------------
    The stack trace (identical from Solaris and Win2K):
    SERVICE FAULT: Code: SOAP-ENV:Server String: DispCache appears to becorrupt.
    getDispFile() returned null. Detail: END SERVICEFAULTweblogic.jws.control.ServiceControlException:
    SERVICE FAULT: Code: SOAP-ENV:Server String: DispCache appears to becorrupt.
    getDispFile() returned null. Detail: END SERVICE FAULT atweblogic.knex.control.ServiceControlImpl.invoke(ServiceControlImpl.java:315)
    at weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:316) at$Proxy123.GetUserAttributes(Unknown
    Source) atEWSWebServiceTest.testGetUserAttributes(EWSWebServiceTest.java:58)
    at java.lang.reflect.Method.invoke(Native Method) atweblogic.knex.dispatcher.DispMethod.invoke(DispMethod.java:211)
    at weblogic.knex.dispatcher.Invocable.invoke(Invocable.java:454) atweblogic.knex.bean.WebBean.invokeBase(WebBean.java:195)
    at weblogic.knex.bean.WebServiceBean.invoke(WebServiceBean.java:70) atweblogic.knex.bean.WebServiceBean_v4x0yn_EOImpl.invoke(WebServiceBean_v4x0yn
    _EOImpl.java:46)
    at weblogic.knex.bean.WebDispatcherBean.invoke(WebDispatcherBean.java:103)at
    >
    weblogic.knex.bean.RemoteDispatcherBean.invoke(RemoteDispatcherBean.java:127
    atweblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl.invoke(RemoteDispatche
    rBean_2c75i3_EOImpl.java:46)
    atweblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl_WLSkel.invoke(Unknown
    Source) atweblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
    atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :263)
    atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :230)
    atweblogic.knex.bean.RemoteDispatcherBean_2c75i3_EOImpl_WLStub.invoke(Unknown
    Source) atweblogic.knex.dispatcher.Dispatcher.remoteDispatch(Dispatcher.java:120)
    at weblogic.knex.dispatcher.Dispatcher.dispatch(Dispatcher.java:66) atweblogic.knex.dispatcher.HttpServer.exploreExec(HttpServer.java:458)
    at weblogic.knex.dispatcher.HttpServer.doGet(HttpServer.java:364) atjavax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) atweblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:1058)
    atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :401)
    atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :306)
    atweblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5445)
    atweblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:780)
    atweblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3105)
    atweblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2588)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) atweblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    >
    >

Maybe you are looking for