Problems with HTTP POST - HttpConnection

I am trying to send the data of a Textfield via a HttpConnection and POST Method.
Therefore, the Content-length request header is set to to length of the byte-Array accordingly.
Problem:
If Content-length is not set, the data is written to the output stream but then - i guess - the servlet doesn't parse the body of the request and request.getParameter("username") does not work from the servlet.
If it is set (Content-length), the data is not being transmitted!
connection = (HttpConnection)Connector.open("http://localhost:8080/servlet/VpeNetworkServlet");
connection.setRequestMethod(HttpConnection.POST);
//Build the Postmessage
String requestBody = "username=" + username;
//Transform the String to a Byte-Array
byte postMessage[] = requestBody.getBytes();
//set the length of content
//connection.setRequestProperty("Content-length", String.valueOf(postMessage.length));
//POST the data
os = connection.openOutputStream();
//Write it to the OutputStream
os.write(postMessage);
for (int i = 0; i < postMessage.length; i++)
os.
os.write(postMessage);
//flush the buffer!
os.flush();
Can anyone help?? Submitting via GET works perfectly, but I prefer POST over GET.
Thanx,
SVEN

Hi Yaron,
do you have any suggestion about encoding data? I really have no idea about this. How to encode data and which technique we should use?
Thanks
Udsy
Hi,
There are 2 things that may help you :
1. use:
connection.setRequestMethod(HttpConnection.POST,READ_WR
TE);
2. Use:
connection.setRequestProperty("Content-Type","applicati
n/x-www-form-urlencoded" );
Notice:
You need to encode the data before sending it ovet
http.
Hope it helps,
Yaron G.

Similar Messages

  • Starting workflow with HTTP-Post

    Hello,
    like I wrote in Starting workflow with HTTP-Post I have a problem with starting a workflow with a http-post:
    I have an installation of SAP ERP 2005 SR2 IDES on Win2003 SR2 SP2 and want to start a simple workflow with an external application. Therefor I created an elementary test-workflow and set the general task flag so everybody is allowed to start it. So far everything work fine as I start it manually.
    Now I want to start the workflow by an external application over a HTTP-Post as described in
    http://help.sap.com/saphelp_47x200/helpdata/EN/54/de9e3887d6174fe10000009b38f842/content.htm
    I configured the webserver (Customizing Web-Server) as follows:
    Service: WebFlow (Intranet)
    Address: http://192.168.0.216:8000/
    Path: SAP/BC/WORKFLOW_XML/?
    and sent a post via perl to http://192.168.0.216:8000/SAP/BC/WORKFLOW_XML/?protocol=01&localkey=WS99900004
    <?xml version="1.0" ?>
    <WfMessage Version="1.0" xmlns="http://www.wfmc.org/standards/doc/WF-XML">
    <WfMessageHeader>
    <Request ResponseRequired="No">
    <Key>http://192.168.0.216:8000/SAP/BC/WORKFLOW_XML/?protocol=01&localkey=WS99900004</Key>
    </WfMessageHeader>
    <WfMessageBody>
    <CreateProcessInstance.Request StartImmediately="true">
    <ObserverKey>http://192.168.0.224</ObserverKey>
    </CreateProcessInstance.Request>
    </WfMessageBody>
    </WfMessage>
    The Web-Server returns
    C:\FH\SAP\perl-scripte>perl http-post.pl
    HTTP/1.1 200 OK
    Server: SAP Web Application Server (1.0;700)
    Content-Length: 0
    Content-Type: text/plain
    Client-Date: Sun, 01 Jun 2008 11:00:24 GMT
    Client-Peer: 192.168.0.216:8000
    Client-Response-Num: 1
    but it seems that nothing happens.
    I also tried to post the XML via html-form-field with the same result.
    Did I forgot something essential?

    Hello Daniel
    It's 6 years after you posted your question, but I found your post very useful and thought it would be worth updating for future reference.
    I've just managed to trigger a workflow via http.
    URL :
    http://server.domain:8000/sap/bc/workflow_xml?sap-client=110
    Java :
    URL obj = new URL(url);
    URLConnection con = (URLConnection) obj.openConnection();
    String userpass = "username:password";
    String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
    con.setRequestProperty ("Authorization", basicAuth);
    con.setRequestProperty("Content-type", "text/xml");
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.write( xml.getBytes("UTF-8") );
    wr.flush();
    wr.close();
    You can then read the response.
    I found that until I added the sap_client parameter I couldn't debug in CL_HTTP_WORKFLOW_XML->IF_HTTP_EXTENSION~HANDLE_REQUEST. Then I found that the content type has to be "text/xml".
    I set the xml variable (the data sent to ECC) to :
    <?xml version="1.0" ?>
    <WfMessage Version="SAP.1.0" xmlns="http://www.wfmc.org/standards/doc/WF-XML">
    <WfMessageHeader>
    <Request>
    <ResponseRequired>Yes</ResponseRequired>
    </Request>
    <Key>HTTP://server.domain:8000/SAP/BC/WORKFLOW_XML/?~localkey=WS90000074</Key>
    <Operation>CreateProcessInstance</Operation>
    </WfMessageHeader>
    <WfMessageBody>
    <CreateProcessInstance>
    <Key>HTTP://server.domain:8000/SAP/BC/WORKFLOW_XML/?~localkey=WS90000074</Key>
    <ContextData>
    <YOUR_CONTEXT_VARIABLE>x</YOUR_CONTEXT_VARIABLE>
    </ContextData>
    <StartImmediately>Yes</StartImmediately>
    </CreateProcessInstance>
    </WfMessageBody>
    </WfMessage>
    regards
    Steve

  • Problem with depreciation posting for an asset with a '0' net book value.

    Hi,
    I have a problem with depreciation posting on one asset. I think it should not be calculated and posted at all.
    On 1st November 2010 (our Fiscal year starts on 1st November) there was acquisition posted to an asset and then it was reversed on the same day - so the net book value was '0'.
    In AFAB depreciation run for April 2011 - it posted depreciatoion of 0.01 Euro, so now the book value is -0.01.
    Do you know how this could have happened and what can I do to get the value of this asset back to 0?
    Thank you,
    Karol

    Hi Murlidhar,
    Thank you for your reply.
    I just have one doubt - as depreciation of 0.01 Eur was posted in previous period leaving net value of asset equal to -0.01 Eur.
    Shouldn't I get ritd of this asset value before I proceed with the steps you suggested?
    I think it is not possible to reverse the depreciation - so I struggle to find a way to bring asset value back to zero.
    Thank you,
    Karol

  • Working with HTTP-POST Submit Button

    I've created a form that uses a submit button with HTTP-POST.   I've tested this against a script that displays the fields, however, I'd like to table the posted data to SQL.   Can someone show me some code to parse this data with CGI, or PHP?

    Yes. At some point you will need to prarse the requests and treat them differently - because a POST is NOT the same as a GET.
    Anyway, just place the variables or script-links to the variables in an HTML Form.
    Very easy stuff.

  • Problems with the posting period....

    Hi guys,
    every once in a while the old problem with the posting periods occurs. This morning it hit me and I went out to repair it.
    Starting out from MMRV I checked the open period and it said 062009.
    Using MMPV, by mistake, I opened 112009, so that I'm able to post to 112009 PLUS the previous period 102009 (which is ok so far). Later on I checked OB52 to see, if finance is not the problem. The opened period lasts from 012009 to 122009.
    Long story short: everything seems perfectly alright, however it still doesn't work. It says: Posting only possible in periods 2009/11 and 2009/10 in company code 1000
    I don't see where there could be a problem now...
    Any help is greatly appreciated!
    Thx & regards,
    Bobby

    Hi,
    It is possible to re-open a previously closed period. However, it is NOT advisable to do so because the valuation data of the previous period could be affected.
    In general, it is only safe to reopen a previously closed period when no material postings have been done after the period shifting to the new period.
    If there has already been postings after the period shifting to the new period, reverting the period back will cause database inconsistencies in the history tables.
    If you decide to proceed with this process, you can use the program RMMMINIT, but, please review the documentation of this program first!! and the check the SAP notes 487381 (for the error message that you are receiving) and the 369637 (for an explanation about the inconsistencies that will be generated.
    Steps are as below;
    Go to Transaction Code SE38
    Enter program name RMMMINIT
    Execute or press F8 function button
    Enter your company code (From and To)
    Enter relevant date: Say 01/10/2009 for Oct. 2009 month to be opened as of now
    That means, user can post for the month of sept 2009 as well as Oct. 2009
    Refer SAP Note No. 487381 for more details.
    As per SAP Notes 487381 ( If the periods are opened in advance in mmpv to again change it to current period the following process should be follow ), Go to Tcode MMPI, then go to menu bar and select system -> user profile->owndata.In that screen , under the parameters tab enter MMPI_READ_NOTE in Parameter ID field and enter, then under short description you will get Initialise period. Next Save.
    Again go to MMPI enter company code, period and year and execute.
    Other way of doing it is follow these steps: ( *TRY in Sandbox But do not try in PRODUCTION SYSTEM*)
    1. Use t.code: OX18, and delete the plants assigned to your CO.Cd and save.
    2. Use t.code: OMSY and change the posting period to the one u want and save.
    3.Go to OX18 and assign the plants you have deleted in step 1.and save.
    Regards,
    Biju K

  • Kerberos Ticket via Java to BW to access BW Querys with HTTP POST

    Hi and thanks for reading,
    im Working with 2004 and the NWDS SP10. We have a project which must show some reports from the HR system via backend and some BW Reports done with Web Application Designer 3.5.
    The user of the project application is able to select personnel numbers or org units in a tree UI element. At design time we do not know hwo many of each he might select (could be a couple of hundreds or even more).
    A URL isn't long enough to support our needs (255 characters border)
    A consultant said that we should use HTTP Post with a Form. He gave me an example like this
    <HTML>
    <BODY>
    <form name="querySelektion" action="<system name>" method="POST">
              <input type="submit" value="Formular senden" />
              <!-- Template Parameter -->
              <input name="SAP-LANGUAGE" type="hidden" value="D" />
              <input name="PAGENO" type="hidden" value="1" />
              <input name="CMD" type="hidden" value="LDOC" />
              <input name="TEMPLATE_ID" type="hidden" value="Z_TEST_AX" />
              <!-- Selektionsparameter -->
              <input name="var_name_1" type="hidden" value="H1_ORGST" /></td>
              <input name="VAR_NODE_IOBJNM_1" type="hidden" value="0ORGUNIT" />
              <input name="var_value_ext_1" type="hidden" value="50058503" />
         </form>
    </BODY>
    </HTML
    This is working beside the fact that i have to fill in my BW username and password. I translated this to Java with  the Jakarta HTTP Librarys into the following code.
    try
                HttpClient httpClient = new HttpClient();
                PostMethod post = new PostMethod("http://<system name>");
                NameValuePair[] data =
                        new NameValuePair("SAP-LANGUAGE", "D"),
                        new NameValuePair("PAGENO", "1"),
                        new NameValuePair("CMD", "LDOC"),
                        new NameValuePair("TEMPLATE_ID", "Z_TEST_AX"),
                        new NameValuePair("var_name_1", "H1_ORGST"),
                        new NameValuePair("VAR_NODE_IOBJNM_1", "0ORGUNIT"),
                        new NameValuePair("var_value_ext_1", "50058503")};
                post.setRequestBody(data);
                int iReturnCode = httpClient.executeMethod(post);
                wdContext.currentContextElement().setTextView(Integer.toString(iReturnCode ));
                post.releaseConnection();
            } catch (IOException ioe)
                wdContext.currentContextElement().setTextView(ioe.getMessage());
    All i get is an Error 401 which means "Not Authorized". The Portal (where the application is running) and the BW do both support Single Sign On and the BW System is configured in the Portal.
    I think the HTTP Post is to generic. I also think that i need to make a authorization before and post the Kereberos Ticket to the BW before.
    But how can i accomplish that? Is there a SAP HelperClass to configure or establish system connections of SSO enabled systems?
    Or is the approach with the HTTP Post in java wrong, maybe there is an easier way to do transfer a lot of personnel or orgunit numbers to the BW Query?
    Thanks in advance,
    Kai Mattern

    Since you mentioned, I now tried to modify the writeToFile method in a few ways (closing the streams, directly setting them to null...), but the "java.lang.IllegalStateException: Already connected" exception remains there
    Actually I suppose this has no effect on the originally reported cookie problem, because if I just completely remove this logwriting (+ the following URL disconnect-reconnect) from the code, the situation is the very same
    I paste my modified writeToFile method anyway, maybe you can tell what I do wrong here, and I can learn from that
        public void writeToFile ( HttpURLConnection urlConnection, String filename ) {
          try {
            BufferedReader bufferedReader = null;
            InputStreamReader inputStreamReader = null;
            // Prepare a reader to read the response from the URLConnection
            inputStreamReader = new InputStreamReader(urlConnection.getInputStream());
            bufferedReader = new BufferedReader(inputStreamReader);
            String responseLine;
            PrintStream printStream = new PrintStream(new FileOutputStream (filename));
            // Read until there is nothing left in the stream
            while ((responseLine = bufferedReader.readLine()) != null)
                printStream.println(responseLine);
            inputStreamReader.close();
            bufferedReader.close();
            inputStreamReader = null;
            bufferedReader = null;
            printStream.close();
          catch (IOException ioException) { /* Exception handling */ }
        } //writeToFile()

  • Error Unexpected end of file from server with HTTP POST

    Hi everyone,
    I'm coding a simple client to download some information from a local machine in my LAN.
    I have to do this with an http post request.
    When i try to parse the http response the program catch an exception, this one:
    java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(...)
    the parameter is a JSON request, and of course the response is a JSON formatted.
    i put the http request code:
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    public class HttpDownloaderThread  extends Thread{
         private String url;
            private String param;
         private HttpDownloadListener listener;
         private HttpURLConnection connection=null;
         private InputStream is;
            private OutputStreamWriter wr;
         public HttpDownloaderThread(String _url,String param, HttpDownloadListener _listener){
              url = _url;
              listener = _listener;
                    this.param=param;
         public void run(){
              try{
                   connection=(HttpURLConnection)new URL(url).openConnection();
                            connection.setRequestMethod("POST");
                            connection.setReadTimeout(5000);
                            connection.setRequestProperty("Content-Type", "application/jsonrequest");
                            connection.setDoOutput(true);
                            wr = new OutputStreamWriter(connection.getOutputStream());
                            wr.write(param, 0, param.length());
                            wr.flush();
                            int responseCode=0;
                   System.out.println();
                            try{
                             responseCode= connection.getResponseCode();
                            }catch(Exception e){
                                e.printStackTrace();
                   if (responseCode == HttpURLConnection.HTTP_OK){
                        is = connection.getInputStream();
                                     BufferedReader rd = new BufferedReader(new InputStreamReader(is));
                                    String line;
                                    while ((line = rd.readLine()) != null) {
                                        System.out.println(line);
                        closeHttpConnection();
                        listener.resourceDownloaded(url, null);
                                else{
                                closeHttpConnection();
                                listener.downloadFailed(url, new Exception("Http error: " + Integer.toString(responseCode)));
              }catch(Exception e){
                   e.printStackTrace();
                   listener.downloadFailed(url, e);
              }finally{
         public void closeHttpConnection(){
              if (is != null){
                   try{
                        is.close();
                                    wr.close();
                   }catch (Exception e){
                   }finally{
                        is = null;
                                    wr=null;
              if (connection != null){
                   try{
                        connection.disconnect();
                   }catch (Exception e){
                   }finally{
                        connection = null;
    }there's someone who know's why??
    Thanks to everyone :)
    Thomas.

    jole_star wrote:
    this problem also happen to me,.So since you provided actually no information about your problem you are going to get exactly the same response.
    Please don't hijack old threads. Start your own and provide much much much more information.
    I shall lock this thread.

  • InDesign problem With Https cURL Seems Very Slow at first time  to handshaking to server

    I am trying to connect the server using cURL from Indesign, but when i am trying to call to server the indesign takes so much time to open and initialize the socket it takes 25 seconds at first time only, but On all subsequent calls it is fast,
    *but when i am tryid that same programe with an c++ empty project it is very fast in 2 second we get a result back,
    *So the Problem With Indesign Socket initialization using https at first time because i have tryid same Curl On Simple c++ program and it is fast at all calls
    Specification:
    I am Currently using
         Indesign cs7 version 9.0
         visual studio 2010
    Can Anyone tell me why It happens,
    my code snippet is as follows please try to find if anyone knows better.
             curl_global_init(CURL_GLOBAL_ALL);
              curl = curl_easy_init();
             struct data config;
          config.trace_ascii = 1; /* enable ascii tracing */
          struct curl_slist *chunk = NULL;
             curl_slist_append( chunk, "Content-Type: application/json");
          curl = curl_easy_init();
          struct AppMemoryStruct chunk1;
             chunk1.memory = (char *)malloc(1);  /* will be grown as needed by the realloc above */
             chunk1.size = 0;    /* no data at this point */
           if(curl) {
                 curl_easy_setopt(curl, CURLOPT_URL, url.GetPlatformString().c_str());
                 curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
                 curl_easy_setopt(curl, CURLOPT_SSLCERT, "C:\\test\\omg.aps.net.pem");
                 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
              curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2);
                 curl_easy_setopt(curl,CURLOPT_KEYPASSWD,"");
                 char error[1024];
                 curl_easy_setopt ( curl, CURLOPT_ERRORBUFFER, error );
           /* send all data to this function  */
                 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &AppWriteMemoryCallback);
          /* we pass our 'chunk' struct to the callback function */
                 curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk1);
          /* some servers don't like requests that are made without a user-agent
              field, so we provide one */
                 //curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
                 //curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
                 //curl_easy_setopt(curl, CURLOPT_HTTPGET,1);
         //heres the performance get down its around 25 seconds when i am calling The server Using Curl Object Having
         //https url 
                res = curl_easy_perform(curl);
        // till here
                 if(CURLE_OK != res)
                     errorCode = kFalse;
                     if(chunk1.memory)
                         free(chunk1.memory);
                      curl_easy_cleanup(curl);
                   return errorCode;
                 errorCode = kTrue;
                 if(chunk1.memory)
                     returndata.SetCString(chunk1.memory);
                     free(chunk1.memory);
               /* always cleanup */
             curl_easy_cleanup(curl);curl_global_init(CURL_GLOBAL_ALL);
          please try to find a key issue why the performance is very bad using https.
    Thanks,

    I was tempted to move this over to the InDesign SDK forum where there are coders, but there isn't a lot of traffic over there, so I'm going to leave this open here with the advice that you probably won't get an answer from anyone here becasue we are, for the most part, not folks who work with code beyond scripting (and very few scripters hang out here, either).
    You should cross-post over there yourself and hope someone who understnds the qusetion sees it in one place or the other.

  • ACE : Stickyness problem with http cookies

    Hi,
    I am facing a serious problem with stickyness in a e-commerce configuration.
    Here is the setup :
    An ACE load balance user requests on two Apache servers
    cookie-insert is used to stick a user on one Apache server
    The home page is accessed via http on port 80
    On the Home page, there is a link to allowing the user to login
    The login process uses SSL
    During the login, backend SSL is required between the ACE and the selected Apache server
    The login is a POST request to the Apache server
    After a successful login, the home page is reloaded on port 80 and the name of the user should appear on the top of the page
    The ACE configuration :
    Two sticky groups are configured : one for HTTP acess and another for HTTPS access
    Two server farms are defined, both using the same real servers, but with different ports (80 and 441)
         sticky http-cookie STICKED-TO ECOM_STICKY_TEST_HTTP
           cookie insert browser-expire
           timeout 240
           replicate sticky
           serverfarm ECOM_FARM_TEST_HTTP
              sticky http-cookie STICKED-TO ECOM_STICKY_TEST_HTTPS
           cookie insert browser-expire
           timeout 240
           replicate sticky
           serverfarm ECOM_FARM_TEST_HTTPS
         serverfarm host ECOM_FARM_TEST_HTTP
           description *** e-Commerce Test Server Farm ***
           probe ECOM_PROBE_TEST
           rserver HQCHECOM01 80
            inservice
           rserver HQCHECOM02 80
            inservice
             serverfarm host ECOM_FARM_TEST_HTTPS
          description *** e-Commerce Test Server Farm ***
          probe ECOM_PROBE_TEST
          rserver HQCHECOM01 443
           inservice
          rserver HQCHECOM02 443
           inservice
    The problem :
    Let analyse the sequence of events and the value of the http cookie for each of them :
    When the the home page is originally loaded, the ACE selects SERVER-1
    The ACE inserts the cookie "A" in the server responses
    The user is sticked to SERVER-1
    Then, the user tries to login and an SSL session is established with the ACE
    The user sends a POST request containing the cookie "A"
    A backend SSL session is established with SERVER-1
    The POST request is forwarded to SERVER-1
    SERVER-1 responds with a 200 OK and the ACE generates another cookie "B" as it belongs to the sticky group ECOM_STICKY_TEST_HTTPS
    The client browser reloads the page on port 80 and provides the cookie "B" (the last received) !!
    The ACE sees the cookie "B" but does not find it in its database for the sticky group ECOM_STICKY_TEST_HTTP
    The ACE perform another load balancing decision and selects SERVER-2 ! (instead of SERVER-1)
    The page is reloaded, but the name of the user does not appear on it
    The question :
    As it is not possible to have only one sticky group in this configuration what would be the solution to make sure that the same server is selected for http and https ?
    Thank you for any hints,
    Yves

    Hi Gilles,
    I followed your recommendation to configure static cookie entries in each sticky group, but I still experience the problem of sessions getting re-load balanced to the second server when returning from HTTPS to HTTP :
    It seems that the ACE ignores the static entries !
    To make my question clear, I repeat hereafter the setup and the encountered problem :
    Here is the setup :
    An ACE load balance user requests on two Apache servers
    cookie-insert is used to stick a user on one Apache server
    The home page is accessed via http on port 80
    On the Home page, there is a link to allowing the user to login
    The login process uses SSL
    During the login, backend SSL is required between the ACE and the selected Apache server
    The login is a POST request to the Apache server
    After a successful login, the home page is reloaded on port 80 and the name of the user should appear on the top of the page
    The ACE configuration :
    Two sticky groups are configured : one for HTTP acess and another for HTTPS access
    Two server farms are defined, both using the same real servers, but with different ports (80 and 443)
    In the ECOM_STICKY_TEST_HTTP stick group the two following cookies are automatically generated :
    R105816849   for the server HQCHECOM01
    R105852786   for the server HQCHECOM02
    In the ECOM_STICKY_TEST_HTTPS stick group the two following cookies are automatically generated :
    R355972695   for the server HQCHECOM01
    R357158616   for the server HQCHECOM02
    I statically configured in the each sticky group the cookies used by the other sticky group, to allow stickiness when the browser switches from HTTP to HTTPS and vice versa :
    sticky http-cookie STICKED-TO ECOM_STICKY_TEST_HTTP
      cookie insert browser-expire
      timeout 240
      replicate sticky
      serverfarm ECOM_FARM_TEST_HTTP backup WEB_REDIRECT_001
      56 static cookie-value "R355972695" rserver HQCHECOM01
      64 static cookie-value "R357158616" rserver HQCHECOM02
    sticky http-cookie STICKED-TO ECOM_STICKY_TEST_HTTPS
      cookie insert browser-expire
      timeout 240
      replicate sticky
      serverfarm ECOM_FARM_TEST_HTTPS backup WEB_REDIRECT_001
      72 static cookie-value "R105816849" rserver HQCHECOM01
      80 static cookie-value "R105852786" rserver HQCHECOM02
    serverfarm host ECOM_FARM_TEST_HTTP
      description *** e-Commerce Test Server Farm ***
      probe ECOM_PROBE_TEST
      rserver HQCHECOM01 80
       inservice
      rserver HQCHECOM02 80
       inservice
    serverfarm host ECOM_FARM_TEST_HTTPS
      description *** e-Commerce Test Server Farm ***
      probe ECOM_PROBE_TEST
      rserver HQCHECOM01 443
       inservice
      rserver HQCHECOM02 443
       inservice
    The problem :
    Let analyse the sequence of events and the value of the http cookie for each of them :
    When the the home page is originally loaded, the ACE selects SERVER-1
    The ACE inserts the cookie "A" in the server responses
    The user is sticked to SERVER-1
    Then, the user tries to login and an SSL session is established with the ACE
    The user sends a POST request containing the cookie "A"
    A backend SSL session is established with SERVER-1
    The POST request is forwarded to SERVER-1
    SERVER-1 responds with a 200 OK and the ACE generates another cookie "B" as it belongs to the sticky group ECOM_STICKY_TEST_HTTPS
    The client browser reloads the page on port 80 and provides the cookie "B" (the last received)
    The ACE sees the cookie "B" and should use the static cookie entry to select the SERVER-1
    But instead, the ACE perform another load balancing decision and selects SERVER-2 !
    The page is reloaded, but the name of the user does not appear on it
    LiveHTTP Trace on Firefox :
    GET /ecom/medias/sys_master/8800775602206/Home-page-main-banners-video.jpg HTTP/1.1
    Host: ecom.test.toto.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 (CK-IBM) Firefox/3.5.8
    Accept: image/png,image/*;q=0.8,*/*;q=0.5
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://ecom.test.toto.com/uk/en/home
    Cookie: STICKED-TO=R105816849;
    HTTP/1.1 200 OK
    Set-Cookie: STICKED-TO=R105816849; path=/
    Date: Mon, 18 Oct 2010 15:31:37 GMT
    Server: Apache/2.2.13 (Red Hat)
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: image/jpeg
    Here we switch on HTTPS :
    https://ecom.test.toto.com/uk/en/j_spring_security_check
    POST /uk/en/j_spring_security_check HTTP/1.1
    Host: ecom.test.toto.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 (CK-IBM) Firefox/3.5.8
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://ecom.test.toto.com/uk/en/home
    Cookie: STICKED-TO=R105816849; JSESSIONID=089DCF987DC03CAE0F516298EB886DAB.node1;
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 75
    spring-security-redirect=&j_username=yves144%40yahoo.com&j_password=junon01
    Here we see cookie for the same server but for the HTTPS sticky group :
    HTTP/1.1 302 Moved Temporarily
    Set-Cookie: STICKED-TO=R355972695; path=/
    Set-Cookie: _hybris.tenantID_=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
    Date: Mon, 18 Oct 2010 15:31:39 GMT
    Server: Apache/2.2.13 (Red Hat)
    Location: http://ecom.test.toto.com/uk/en/home
    Content-Length: 0
    Connection: close
    Content-Type: text/plain; charset=UTF-8
    Here we switch back to HTTP :
    http://ecom.test.toto.com/uk/en/home
    GET /uk/en/home HTTP/1.1
    Host: ecom.test.toto.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 (CK-IBM) Firefox/3.5.8
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://ecom.test.toto.com/uk/en/home
    Cookie: STICKED-TO=R355972695; JSESSIONID=089DCF987DC03CAE0F516298EB886DAB.node1;
    Here we see that the second server has been wrongly selected !
    HTTP/1.1 200 OK
    Set-Cookie: STICKED-TO=R105852786; path=/
    Set-Cookie: _hybris.tenantID_=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
    Set-Cookie: JSESSIONID=5A0F6EB8FBF63D5D0590FECEC62A302E.node2; Path=/; HttpOnly
    Date: Mon, 18 Oct 2010 15:31:40 GMT
    Server: Apache/2.2.13 (Red Hat)
    Pragma: no-cache
    Expires: Thu, 01 Jan 1970 00:00:00 GMT
    Cache-Control: no-cache, no-store
    Content-Language: en-GB
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html;charset=UTF-8
    http://ecom.test.toto.com/ecom/medias/sys_master/8796174057502/uk.gif
    GET /ecom/medias/sys_master/8796174057502/uk.gif HTTP/1.1
    Host: ecom.test.toto.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 (CK-IBM) Firefox/3.5.8
    Accept: image/png,image/*;q=0.8,*/*;q=0.5
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://ecom.test.toto.com/uk/en/home
    Cookie: STICKED-TO=R105852786; JSESSIONID=5A0F6EB8FBF63D5D0590FECEC62A302E.node2;
    HTTP/1.1 200 OK
    Set-Cookie: STICKED-TO=R105852786; path=/
    Date: Mon, 18 Oct 2010 15:31:40 GMT
    Server: Apache/2.2.13 (Red Hat)
    Content-Length: 382
    Connection: close
    Content-Type: image/gif
    Hypothesis :
    It seems that the static entries are not considered by the ACE...

  • Problem with https internet url for Portal

    Hello ,
    We are running EP 7 SP 13.
    We had a problem with the j2ee engine going down due to a db problem .It is ok now and and j2ee is up and running fine and the portal is accessible from the intranet.
    But there is a problem with the https url that we use for internet access. It gives "page cannot be displayed error".
    There is a IISproxy in place for internet access.Https certificate has not expired. Couldnt find much in the portal logs and trace or am I looking in the wrong place?
    Any help would be most appreciated.
    Rgds

    Hi Vineeth
    Check the IIS settings, , they might not have started properly.
    EP5: Enabling SSL and renewing the J2EE certificate
    SAP Note Number: 685306
    Can you check the contents of Keystore in Visual admin,
    Regards
    Kaleem
    Edited by: Kaleem on Aug 19, 2008 2:11 PM

  • Problem with http - serverlet interaction?

    Hi. I'm having a bit of problem with a HttpURLConnection.
    First of all, this isn't something I'm especially knowledgeable in, so..
    Basically, I'm requesting a page that carries a token used for validating a form submission to prevent multiple posts. However, when I try to request said page, I get an internal server error. The same happens if I try to type the URL into my browser; the page only loads properly if I go to it via a link. However, checking the source of the page with the link shows nothing special about it, which has me a little confused. I tried making a new page and linking to the page I'm trying to load, and it loaded fine, so it seems that it will load as long as it was accessed by clicking a link.
    I'm assuming this problem has to do with the serverlet needing to generate a token for the session, but since I'm requesting it from a HttpURLConnection, it's not able to get the token. I've been trying to think of a way around it, but I've got nothing.
    Can anybody give me a hand here? Thanks.

    You are looking for the mouseEnabled property.
    So, for instance, where image is the instance name of the image on the border:
    image.mouseEnabled = false;

  • Has anyone experienced a problem with FB posting since the installation of iOS 6?

    Since the installation of iOS 6, I noticed that when I post a photo on FaceBook it does not show that post using my iPad or iPhone. I posted using my iMac and within seconds it showed up on two devices mentioned above. Please help.

    Hello,
    I am currently an owner of an Ipod Touch 4th generation. I see you are having problems with your Ipod Touch/Ipad/Iphone/Ipod Classic, so I will try to find a solution to your problem.
    Do the IOS update (the one that is the latest)
    Reset All Settings: SETTINGS>GENERAL>RESET>RESET ALL SETTINGS
    Use it until it dies (automatically shuts off)
    Plug into Charge
    Leave it 1.5 hours or longer after it reaches 100% --> Undisturbed (preferably overnight)
    Give it a few days to Calibrate
    This has helped me on my Ipod Touch 4th generation, running IOS 6.0.1
    Hope that helps!
    If none of the above solutions work, can you please respond back ASAP as I will try to find another solution to your problem (This might even help others with the same problem!)
    Cheers!
    Pizza98704

  • Problem with HTTP load balancing

    Hello Experts
    I have a problem when i do loadbalancing for links like http://1.1.1.1/site/home where 1.1.1.1 is the VIP address (i got http not found), while it is working fine when the link is http://1.1.1.1,
    the link is working fine on the real servers for example when i try http://2.2.2.2/site/home it works
    by the way, im not doing URL loadbalancing,
    any ideas
    Thank you in advance

    It is generally good idea for this type of cases to get a sniffer trace (in ACE module span 10G backplane interface from supervisor or if ACE appliance take parallel span session of client and server vlan).
    This case was investigated in TAC SR and this is a small summary of the traces that may help other users hitting this issue (usually it is good idea to filter by http and client IP) :
    This is what we have seen for the non-working scenario.
    Packet 1: Client sends HTTP GET to ACE VIP
    Packet 2: ACE forwards HTTP GET to RSERVER
    Packet 3: RSERVER answers ACE with HTTP 404
    Packet 4: ACE forwards the real server response (HTTP 404) to the client
    ACE was not changing anything in the packets that were being loadbalanced. And the HTTP 404 error sent from the server that ACE was forwarding indicates that the Web server thinks that the HTTP data stream sent by the client was correct, but simply can not provide the access to the resource specifief by URL.
    Bottom line it was found that in this case the server behaves in a different way based on the hostname used to connect to the application, and this should be addressed on the application/server side. An easy way to check this is by using the server name pointing to the vip in local client hostfile.

  • Sneak Preview ABAP 2004s: Problem with HTTP-Server

    Hi..
    I have just installed the sneak preview.
    Everything works well.
    But there is a problem with the webdynpro
    for abap. When i try to start the example
    i become a message: "Windows can not find
    ://:/sap/bc/webdynpro/sap/wdt_quiz ....... "
    This error is from the HTTP options.
    In transaction SMMS over extert functiuns->http->display
    the parameter  http_status_code is -1.
    Can anyone help me what i can do?

    when you go into transaction SMICM->go to ->services you should atleast see one entry for HTTP
    it will be something like below.
    No. Protocol           Service Name/Port    Host Name            Keep Alive Acti External Bind                                                                               
    1  HTTP               1081                 xxxx.domain.com        30                       
    i dont think that for this reason , you have to go for a reinstall, i am sure some config is missing.
    Regards
    Raja

  • Need JDeveloper Web Service with HTTP POST method

    Hello all,
    I am creating a Web Service from a java class using JDeveloper. The wsdl created uses a SOAP binding. When I test the web service, either through JDeveloper or by deploying to OAS, the HTTP request created uses the HTTP GET protocol. I am assuming that this would be the same for anybody doing this.
    I need to know how to change it to be an HTTP POST protocol instead.
    The reason that I need to try and use the POST method is that the xml needed by the service holds a lot of data and the http server is giving me a "URI too long" error. I have read and been told that using POST instead of GET would help this, but I can't figure out what to change to make this happen. I am not sure if I have to make a change in the generated wsdl or somewhere else. Or if it just won't work that way.
    Any help you can provide would be appreciated.
    Thanks,
    rob

    Hi Ayush,
    Please refer -
    http://biemond.blogspot.com/2010/08/http-basic-authentication-with-soa.html
    Regards,
    Anuj

Maybe you are looking for

  • Personnel Cost Planning - Detail Planning

    I would like to ask you if some user in R3 system can handle the detail planning functionality of personnel cost planning component for all the plans-scenarios for all existing organizational units; how is it possible and through wich connection betw

  • Few records are missing while downloading to a Spreadsheet  from a Report

    Dear Gurus, few records are missing while downloading to a Spread sheet from a Z report.  There are around 300 records, out of which 11 records are not appearing in Spreadsheet file after saving.  But, the funny thing is when i try to save in other f

  • Media Sync and Windows 2000

    Hello, I'm using for few days a BlackBerry Curve 8900 with a PC under Windows 2000. Did anybody kept the installation package for Media Sync V2, which seems to be compatible with Windows 2000 ? Only the V3 is available on the BlackBerry site. Thanks

  • Ascii characters removal

    hii experts, this is shreya.i have a payload from where i need to remove the special characters searching them through their ascii codes. Please  suggest a solution to my problem.

  • Why cant i open pdf files that have been emailed to me through my comcast email account

    why does it tell me there is an error in the installation of my acrobat reader xl .i can not uninstall it nor can i install  it without it telling me that it is already installed .