Empty HTTP request received in SAP RFC test connection type G

Hi all,
  While checking the RFC connection i am getting error,
response_line               HTTP/1.0 500 Empty HTTP request received
server_protocol             HTTP/1.0
status_code                 500
status_reason               Empty HTTP request received
Please let me know if this is right.

Hi,
  We are trying to connect to an external server. So, we are using Connection Type as G.
RFC connection Test status is 500.
But in our case, Idoc is getting generated but it is in the XI Box, throwing the below error,
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="SECURITY">SECURITY_VERIFY_ERROR</SAP:Code>
<SAP:P1>Check Signature</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>Signature error Error while valdiating the digital signature. Theerror was com.sap.security.core.ws.wss.NoSecurityHeaderException No wsse:Security header has been defined for role soap:finalActor. Please verify the</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>Error during message security handling in inbound channel: Security profile 'Check Signature'</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Since the RFC is working now, we were not able to find what is the issue. Even SSL certificates are valid.

Similar Messages

  • Empty HTTP Request Received

    Hi,
    I have created a Web service in XI and trying to consume it from a different system, I was successful in calling the Web service from Altova XML SPY, however when i post the service end point connection URL in internet explorer directly, I'm getting the following SOAP response. Please advise what causes this error.
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP:Header />
    - <SOAP:Body>
    - <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <faultcode>SOAP:Client</faultcode>
      <faultstring>Empty HTTP request received</faultstring>
      <faultactor>http://sap.com/xi/XI/Message/30</faultactor>
    - <detail>
    - <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="MESSAGE">EMPTY_HTTP_REQUEST_RECEIVED</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Empty HTTP query received; message processing not possible</SAP:Stack>
      </SAP:Error>
      </detail>
      </SOAP:Fault>
      </SOAP:Body>
      </SOAP:Envelope>

    Hi,
    I am also facing the same problem . Any suggestions will be highly appreciated.
    Thanks.

  • How to handle empty Dats field received from SAP RFC response

    Hi All,
    I am invoking a SAP RFC which gives me a Dats field in response.
    A valid dats fields is successfully received by my pipelines.
    But when an empty Dats field is received, My pipeline fails and i get error.
    How to handle the empty Dats field from SAP

    Hi Anant,
    This is because the legacy SAP adapter accepted RFC messages with date field empty. In the new version, the same call results in an error. WCF-SAP adapter doesn't allow blank XML nodes.
    You need to use the below custom pipeline component as a workaround.
    Refer:
    Pipeline component for enabling legacy behavior in WCF-SAP adapter.
    Rachit
    Please mark as answer or vote as helpful if my reply does

  • SRT: Wrong Content-Type and empty HTTP-Body received

    Hi All,
    I created and activated a web service for data acquisition in BI 7.0. The service has been activated and when do a test service from SICF transaction I get the following error page.
    I appreciate any  help to resolve this issue.
    Thanks,
    Jomon
    - <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
      <soap-env:Header />
    - <soap-env:Body>
    - <soap-env:Fault>
      <faultcode>soap-env:Server</faultcode>
      <faultstring xml:lang="en">SRT: Wrong Content-Type and empty HTTP-Body received</faultstring>
    - <detail>
    - <ns:SystemFault xmlns:ns="http://www.sap.com/webas/710/soap/runtime/abap/fault/system/">
      <Host>undefined</Host>
      <Component>COREMSG</Component>
    - <ChainedException>
      <Exception_Name>CX_SOAP_CORE</Exception_Name>
      <Exception_Text>SRT: Wrong Content-Type and empty HTTP-Body received</Exception_Text>
      </ChainedException>
      </ns:SystemFault>
      </detail>
      </soap-env:Fault>
      </soap-env:Body>
      </soap-env:Envelope>

    good morning,
    i am having the same problem, did you find an answer for this? can you update either this message, or reply back at your findings.
    we are trying to get a external system to talk with ecc 6.0 thru sap connecter for .net v2.0.1. it worked with sap 4.6c, but not now.
    any help is appreciated.
    thanks.

  • Authentication error when creating EPM Add-in connection with SAP BO Enterprise connection type

    Hello, Experts,
    I have a problem with creation of EPM Add-in connection when SAP BusinessObjects Enterprise connection type is selected.
    An error message is "Error while communicating with the server. Framework message: Authorization failed."
    Here are the steps that were implemented and how this issue was reproduced:
    SAP BusinessObjects Planning and Consolidation 10.0 SP12 for Microsoft was installed and configured.
    Integration between SAP BPC and SAP BusinessObjects BI 4.1 SP02 was implemented. SAP BO users can successfully connect to SAP BPC system.
    EPM connector was successfully installed and deployed in SAP BusinessObjects BI server.
    BPC ODBO 2.0 SP04 64BIT was installed in SAP BusinessObjects server.
    EPM connection was successfully created in SAP BusinessObjects CMC.
    EPM Add-in and BPC ODBO 2.0 SP04 32BIT was installed in another computer (let's call it CLIENT) which has MS Office 2007 32BIT installed.
    From CLIENT computer we have launched Excel manually and successfully created BPC connection with Connection Type - Local.
    Then we have logged into BI Launch Pad and launched New / EPM document (Excel). Excel has started.
    In EPM Add-in we have pressed Logon.
    In connection window selected SAP BusinessObjects Enterprise connection type.
    An error "Error while communicating with the server. Framework message: Authorization failed." appears.
    Before this error appears we are not getting any window where we could select EPM connection (created in CMC) nor the possibility to enter username or password.
    Looking forward you valuable comments and suggestions.
    Thank you in advance.
    Donatas Budrys

    Dear, Roberto,
    Our user has Full Access to all BPC tasks and it is administrator in BI system.
    Also we can successfully connect with the same user using Connection type "Local".
    We had done some investigation and in the BPC SQL Server trace log we can catch the following message when an error occurs:
    ==============[System Error Tracing]==============
    [System  Name] : BPCXMLAService [Message Type] : ErrorMessage [Job Name]    : ValidateUser [DateTime]    : 04/23/2014 10:58:06 [UserId]      : [Exception]    DetailMsg  : {System.Exception: Invalid user    at SAP.BPC.Services.Webservice.XMLAService.XMLAService.ValidateUser()} ==============[System Error Tracing  End ]==============
    It is very interesting that after the EPM workbook is launched via BI Launch Pad till an error occurs we are NOT provided with possibility to enter any username and password. So the EPM add-in should use the same user which was logged into BI Launch Pad - in our case the user with administrative rights both in BI Launch Pad and BPC systems. Am I missing anything?
    Looking forward your feedback.
    Thank you in advance.
    Best regards,
    Donatas

  • How to monitor Http Request and Response when load testing is going on

    Hi,
    can any one please let me know how to monitor http request sent and response received for each virtual ID when a load test is going on ?
    Thanks,

    You used to be able to see what the VUs "see" using the "VU Monitor" (it would only do a simple rendering of the HTML but it served it's purpose). However this was replaced (in v12 I think?) by the "VU Log". While this offers simlilar functionality, I have had problems getting to see the same level of detail. You may need to use the "debug" modes. Also check the "Content" tab within the VU Logs (it is the closest equivalent to the HTML you would see in the responses in the old VU Monitor).

  • Http request receives incomplete data

    Hi,
    I have an application reading one free format file via http request. This is implemented as stored procedure in a 8.1.6 database on Windows NT. The method readContent (pasted later on)takes the BufferedReader of an InputStreamReader of the InputStream of the socket connection on port 80, which I opened previously. Here is the instantiation:
    sock_ = new Socket(host, port);
    in_ = new BufferedReader(new
    InputStreamReader(sock_.getInputStream()));
    Everything works fine except that the read method on the BufferedReader refuses to read more than 20764 bytes while the http response header tells me that the content length is higher. If I compare the orginal file with the received one using a hex editor, they are identical, only that the received file is cut off after byte 20764.
    Here is the logfile:
    Request>> GET /download/OMIJID1234.ZIP HTTP/1.0
    Response>> HTTP/1.1 200 OK
    Response>> Date: Wed, 18 Apr 2001 07:26:17 GMT
    Response>> Server: Apache/1.3.14 (Win32) ApacheJServ/1.1.2
    Response>> Last-Modified: Wed, 18 Apr 2001 06:49:46 GMT
    Response>> ETag: "0-58a4-3add390a"
    Response>> Accept-Ranges: bytes
    Response>> Content-Length: 22692
    Response>> Connection: close
    Response>> Content-Type: application/zip
    Now we come to readContent method (see later on):
    Number of chars read 16384
    Number of chars read 4380
    ----------------- so far the logfile...
    The total number of chars read is 20764 as you can calculate easily.
    As soon as I use an orginal file which is smaller than 20764 the transfer is ok. Is there any limitation reading from a socket connection? Here is the code:
    public String readContent() throws IOException
    byte inChars[] = new char[16*1024];
    int nofChars, totalNofChars=0;
    StringBuffer sbuf = new StringBuffer();
    do
    nofChars = in_.read (inChars,0,inChars.length); // here is the problem !
    Log.log("Number of chars read "+nofChars, Log.DEBUG); // this is the line you see in the logfile
    if (nofChars != -1)
    totalNofChars = totalNofChars+nofChars;
    sbuf.append(inChars, 0, nofChars);
    while (nofChars == inChars.length); // loop only if the buffer was filled
    if (sbuf.length() == 0) {
    return null; // nothing read
    sbuf.setLength(sbuf.length() - 2); // cut off the trailing \r\n
    return sbuf.toString();
    I doubled the buffersize of the buffered reader: Same result.
    I tried to check the maximum input length on the socket, and got the next error.
    When I try to measure the actual buffersize with
    sock_.getReceiveBufferSize();
    I receive:
    java.net.SocketException: Unsupported OS socket option
    at
    java.net.PlainSocketImpl.socketGetOption(PlainSocketImpl.jav
    a)
    at
    java.net.PlainSocketImpl.getOption(PlainSocketImpl.java)
    at java.net.Socket.getReceiveBufferSize(Socket.java)
    But this method is documented for JDK 1.2, why do I get
    this error ???
    Any ideas with this?
    Dirk

    We have the same problem but our stop at 1790 bytes,
    Do u mind to let us know how u solve this problem
    thanx & regards
    chen

  • Reading the binary data from a http request received via socket connection.

    1. I require to extract the binary data out of a http multipart request,
    2. I have a server socket opened up, which can receive connections over tcp( and therefore http.)
    3. I will require to read the stream, find out the "request boundary identifier", and then extract the different "request body parts".
    4. From there i need to read all of the binary content and put it in a file.
    5. I did some implementation to his effect. but i see that the file that i had uploaded initially if its not a text file, gets corrupted.
    can you please let me know why is that happening, and a probable solution approach.
    please find below the class (with a main method) I have been using to expose a server socket.
    package self.services;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class FileServer {
         public static void main(String[] args) throws Exception {
              ServerSocket serverSocket = new ServerSocket(9999);
              String FOLDER_NAME = "uploaded_files";
              while(true) {     
                   try{
                        Socket socket = serverSocket.accept();
                        InputStream is = socket.getInputStream();
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                        String currentLine;
                        int cnt = 0;
                        boolean postRequest = false;
                        String dataBoundary = null;
                        String fileName = null;
                        String yourName = null;
                        while((currentLine = reader.readLine()) != null) {
                             if(currentLine.contains("POST")) {
                                  postRequest = true;
                                  System.out.println("POST REQ AS EXPECTED VERY NICE");
                                  continue;
                             if(!postRequest) {
                                  System.out.println("NO POST REQ THIS BREAKING FLOW");
                                  break;
                             } else {
                                  if(currentLine.contains("Content-Type: multipart/form-data; boundary=")) {
                                       System.out.println("found a boundary value header");
                                       dataBoundary = currentLine.substring((currentLine.indexOf("boundary=") + "boundary=".length()), (currentLine.length() -1));
                                       System.out.println("boundary value = ".concat(dataBoundary));
                                       continue;
                                  if(dataBoundary != null && currentLine.contains(dataBoundary)) {
                                       cnt++;
                                  if(cnt == 1) {
                                       //move 3 lines
                                       if(currentLine.contains("Content-Disposition: form-data; name=\"yourName\"")){
                                            reader.readLine();//skip a line
                                       System.out.println("Your name = ".concat(yourName = reader.readLine()));
                                       continue;
                                  } else if(cnt == 2) {
                                       if(currentLine.contains("Content-Disposition: form-data; name=\"sentFile\"; filename=\"")){
                                            fileName = currentLine.substring(currentLine.indexOf("filename=") + "filename=".length() + 1, currentLine.length() - 1);
                                            System.out.println("File Name = ".concat(fileName));
                                            reader.readLine();//skip a line , this would depict a content type header
                                            reader.readLine();//skip a line, this would indicate a blank line to mark the start of data.
                                            continue;
                                       } else {
                                            // write the content to os
                                            if(currentLine != null && !currentLine.contains(dataBoundary)) {
                                                 baos.write(currentLine.concat("\r").getBytes());
                                  } else if( cnt == 3) {
                                       System.out.println(("cnt [" + cnt).concat( "], current line [").concat(currentLine).concat("]"));
                                       break;
                        if(fileName == null ||yourName == null) {
                             System.out.println("FileServer.main() dont bother about this" );
                        } else {
                             //send a response back
                             PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
                             pw.write(responseMessage(yourName, fileName));
                             pw.flush();
                             //close output stream
                             pw.close();
                             //handle the request bytearray.
                             FileOutputStream fos = new FileOutputStream(FOLDER_NAME + "/" + fileName);
                             fos.write(baos.toByteArray(), 0, baos.toByteArray().length - 1);
                             fos.close();
                        //close input stream
                        reader.close();
                        socket.close();
                        baos.close();
                   } catch(Exception ex) {
                        ex.printStackTrace();
         public static String responseMessage(String yourName, String fileName) {
              String response =
                   "<HTML>" .concat(
                   "<BODY>") .concat(
                   "<P>" ).concat(
                   "Mr. <FONT color=\"red\">") .concat( yourName).concat("</FONT>. Your file named <B>").concat( fileName).concat( "</B> successfully reached us." ).concat(
                   "</P>") .concat(
                   "</BODY>").concat(
                   "</HTML>");
              return response;
    }{code}
    Here is a sample html file which can be used to send multipart requests to the java service.
    <html>
         <body>
              <form action="http://localhost:9999" enctype="multipart/form-data" method="POST">
                   Enter name :<br/>
                   <input type="text" name="yourName"/>
                   Enter file :<br/>
                   <input type="file" name="sentFile"/>
                   <br/>
                   <input type="submit" value="Submit"/>
              </form>
         </body>
    </html>
    *Both the form elements are mandatory*
    *I hope my requirement is clear. Any help regarding this will be highly appreciated.*
    Regards.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    MishraC wrote:
    1. I require to extract the binary data out of a http multipart request,
    2. I have a server socket opened up, which can receive connections over tcp( and therefore http.)
    3. I will require to read the stream, find out the "request boundary identifier", and then extract the different "request body parts".
    4. From there i need to read all of the binary content and put it in a file.
    5. I did some implementation to his effect. but
    i see that the file that i had uploaded initially if its not a text file, gets corrupted.
    can you please let me know why is that happening,Because you are using a Reader (which translates bytes to chars according to the charset encoding specified).
    and a probable solution approach. Use a BufferedInputStream.

  • Error in RFC test connection

    Hello Friends
    I am running a program which is using a RFC destination (PS_ACCESS_2).
    The program runs well when I run it in the foreground but in the background it gave error.
    To over come the error I made some changes to the RFC destination.
    The changes are as below.
    1)If you check the Rfc dest PS_ACCESS_2 in sm59 it is pointing to a exe file. I kept this file in application server and checked the radio button "start on application server".
    2) I clicked the radiobutton "specify timeout" and increased the timeout value.
    Inspite of these changes when I try to test the connection it gives error.
    the error says " logon Error".
    Kindly help me resolve this error
    Thanks in Advance
    Sudheendra

    Hi kishore
      There is no option to enter User name and password though there is a tab "logon & Security".
    In the tab "Logon & Security" I can see the below things
    Send SAP logon ticket    -> This is checked in my case.
    Status of secure protocol -> This is set to inactive in my case.
    Any help will be greatly appreciated

  • RFC Test Connection

    Hi !
    Is there any function module to test whether the RFC call from one system to other system is successful.
    Regards,
    Priti

    Hi,
    You can use the below FM to check whether the RFC connection is successfull or nor.
      CALL FUNCTION 'RFC_PING'
        DESTINATION XXXX(lv_DESTINATION) " Your destination number
        EXCEPTIONS
          COMMUNICATION_FAILURE = 1
          SYSTEM_FAILURE        = 2.
    You can get the destination using below code.
    select single ZR3IDEXIST from ZRFCDESTINATION
                           into lv_DESTINATION
                        where   SYSID   = sy-sysid
                          and   ZCLTID  = sy-mandt.
    Please do not forget to reward if it is helpful for you.
    Thanks,
    GSK

  • Webdispatcher problem: Forwarding http requests don't work

    hi experts,
    i'am trying to configure my webdispatcher in order forwarding http requests to my sap netweaver message server (AS JAVA instance).
    here is my profile file:
    SAPSYSTEMNAME = WDP
    SAPGLOBALHOST = myWebDispatcherHost
    SAPSYSTEM = 10
    INSTANCE_NAME = W10
    DIR_CT_RUN = $(DIR_EXE_ROOT)\$(OS_UNICODE)\NTAMD64
    DIR_EXECUTABLE = $(DIR_CT_RUN)
    Accesssability of Message Server
    rdisp/mshost = mysapdevServer
    ms/http_port = 8121
    Configuration for medium scenario
    icm/max_conn = 500
    icm/max_sockets = 1024
    icm/req_queue_len = 500
    icm/min_threads = 10
    icm/max_threads = 50
    mpi/total_size_MB = 80
    SAP Web Dispatcher Ports
    icm/server_port_0 = PROT=HTTP,PORT=81$$
    icm/HTTP/redirect_0 = PREFIX=/, TO=/irj/portal
    MyTrace file i got it from web administration screen after lanching this address on my navigator http://myWebDispatcherHost/
    [Thr 2876] Mon Jul 07 16:36:34 2008
    [Thr 2876] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    [Thr 3748] Mon Jul 07 16:36:36 2008
    [Thr 3748] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    [Thr 3464] Mon Jul 07 16:43:55 2008
    [Thr 3464] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    [Thr 3464] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    [Thr 2876] Mon Jul 07 16:43:59 2008
    [Thr 2876] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    [Thr 3852] Mon Jul 07 16:47:42 2008
    [Thr 3852] *** ERROR => htmlEncode: called with empty string [icpif.cpp 847]
    Can you give me some advices to go throug this issue
    Thanks,

    Hi Srinivas,
    We  have installed  web dispatcher on cluster nodes...  and  web dispacther is unable to connect to message server.
    We are on cluster CI ,DI and SQL server runs on different systems.
    I have installed web dispatcher on CI & DI.. on CI web  dispatcher is up and DI is coming down after  couple of minutes if we try to bring it up.
    dev_webdisp:
    [Thr 3636] Wed Jul 30 14:59:51 2008
    [Thr 3636] *** ERROR => NiPConnect2: SiPeekPendConn failed for hdl 5 / sock 131344
         (SI_ECONN_REFUSE; I4; ST; 10.16.148.36:8100) [nixxi.cpp    2764]
    [Thr 3636] *** ERROR => Connection request from (-1/65535/0) to host: nbcdqsasc10b.corp.irvineco.com, service: 8100 failed (NIECONN_REFUSED) [icxxconn.c 2731]
    [Thr 3636] *** ERROR => IcmConnClientRqCreate() failed (rc=-8) [icrxx.c      4919]
    [Thr 3636] *** ERROR => Could not connect to SAP Message Server at nbcdqsasc10b.corp.irvineco.com. URL=/msgserver/text/logon?version=1.2 [icrxx.c      2301]
    [Thr 3636] *** ERROR => rc=-1, HTTP response code: 0 [icrxx.c      2302]
    [Thr 3636] *** ERROR => see also OSS note 552286 [icrxx.c      2303]
    [Thr 7944] Wed Jul 30 15:00:48 2008
    [Thr 7944] *** ERROR => htmlEncode: called with empty string [icpif.cpp    847]
    [Thr 7252] Wed Jul 30 15:00:57 2008
    [Thr 7252] *** ERROR => htmlEncode: called with empty string [icpif.cpp    847]
    [Thr 10200] Wed Jul 30 15:01:07 2008
    [Thr 10200] *** ERROR => htmlEncode: called with empty string [icpif.cpp    847]
    [Thr 1868] Wed Jul 30 15:01:18 2008
    [Thr 1868] *** ERROR => htmlEncode: called with empty string [icpif.cpp    847]

  • Doubts about HTTPS requests and Java proxy

    Hello,
    I need help about SSL connections and Java.
    I'm developing a HTTP/S proxy with Java. To test my proxy, I use Firefox. I configure the proxy option in the browser. The proxy works good with HTTP requests, but with HTTPS requests doesn't work and I don't know why.
    I explain the steps that I do for a HTTPS request:
    * The browser sends a CONNECT message to the proxy.
    I check that the proxy receives the CONNECT request correctly.
    * The proxy establish a secure connection with the content server.
    I use an SSLSocket to connect with my content server, and the SSL handshake is succesful.
    * The proxy sends a 200 HTTP response to the client:
    I send
    HTTP/1.0 200 Connection established[CRLF]
    [CRLF]
    to the application client (Firefox)
    * The proxy sends/receive data to/from Firefox/content server
    I have a Socket between Firefox and my proxy, and a SSLSocket between my proxy and my content server. I use two threads to communicate the client and the server.
    Java code:
    //Thead server-->proxy-->application(Firefox)
    ThreadComm tpa = new ThreadComm(bis_serverSSL, bos_app);
    //Thread application(Firefox)-->proxy-->server
    ThreadComm tap = new ThreadComm(bis_app, bos_serverSSL);
    The "tpa" thread reads from the SSLSocket between the proxy and the server and sends data to the Socket between the proxy and Firefox.
    The "tap" thread reads from the Socket between the proxy and Firefox and sends data to the SSLSocket between the proxy and the server.
    This is the class ThreadComm:
    public class ThreadComm extends Thread{
        private BufferedInputStream bis = null;
        private BufferedOutputStream bos = null;
        public ThreadComm(BufferedInputStream bis, BufferedOutputStream bos) {
            this.bis = bis;
            this.bos = bos;
        @Override
        public void run() {
            int b = -1;
            FileOutputStream fos = null;
              do {
                   try {
                        b = bis.read();
                        System.out.print((char) b);
                        fos.write(b);
                        bos.write(b);
                        bos.flush();
                   } catch (Exception ex) {
                        Logger.getLogger(ThreadAplicacionProxy.class.getName()).log(Level.SEVERE, null, ex);
                        //b=-1;
              } while (b != -1);
        }But this doesn't work and I don't know why.      
    I have an Apache server with the mod_ssl enabled as content server, I can send requests (with Firefox) to the port 80(HTTP request) and 443(HTTPS request) without use my proxy and it works. If I use my proxy, HTTP request works but with HTTPS request doesn't work, I look the log of Apache and I see:
    [Tue Apr 27 17:32:03 2010] [info] Initial (No.1) HTTPS request received for child 62 (server localhost:443)
    [Tue Apr 27 17:32:03 2010] [error] [client 127.0.0.1] Invalid method in request \x80\x7f\x01\x03\x01
    [Tue Apr 27 17:32:03 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
    [Tue Apr 27 17:32:03 2010] [info] [client 127.0.0.1] Connection closed to child 62 with standard shutdown (server localhost:443)
    Why it say? Invalid method in request \x80\x7f\x01\x03\x01 , my proxy sends the data that the Firefox sends.
    I think than I have follow the explanations of [1] but doesn't work, I have problems in implementation in Java but I don't know where.
    I appreciate any suggestions.
    Thanks for your time.
    [1] http://www.web-cache.com/Writings/Internet-Drafts/draft-luotonen-web-proxy-tunneling-01.txt

    ejp, I have checked the socket between the proxy and server and ... You are right! , I was using the port 80 instead of the 443 (incredible mistake!, I'm sorry). I was convinced that I was using the port 443... Well, is a little step, but I still have not won the war :)
    If I see the log files of Apache, We can see that something goes wrong.
    localhost-access.log
    >
    127.0.0.1 - - [04/May/2010:17:44:48 +0200] "\x 80\x 7f\x01\x03\x01" 501 219
    >
    localhost-error.log
    >
    [Tue May 04 17:44:48 2010] [info] Initial (No.1) HTTPS request received for child 63 (server localhost:443)
    [Tue May 04 17:44:48 2010] [error] [client 127.0.0.1] Invalid method in request \x80\x7f\x01\x03\x01
    [Tue May 04 17:44:48 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
    [Tue May 04 17:44:48 2010] [info] [client 127.0.0.1] Connection closed to child 63 with standard shutdown (server localhost:443)
    >
    I think that this happens because Apache receives the data without decrypt, this is the reason because in the log we can see the "Invalid method in request \x80\x7f\x01\x03\x01". This supposition is true?
    ejp, you say that the "Termination is quite tricky." I have changed my code following yours suggestions (using the join and the shutdownOutput) but the threads don't die.
    I explain you what I do:
    (in time 1)
    I launch the thread (threadFirefoxToApache) that reads data from Firefox and sends to Apache.
    I launch the thread (threadApacheToFirefox) that reads data from Apache and sends to Firefox.
    (in time 2)
    threadFirefoxToApache sends the firts data to the server.
    threadApacheToFirefox is waiting that the server says something.
    (in time 3)
    threadFirefoxToApache is waiting that Firefox says something.
    threadApacheToFirefox sends data to Firefox.
    (in time 4)
    threadFirefoxToApache is waiting that Firefox says something.
    threadApacheToFirefox is waiting that Firefox says something.
    and they are waiting... and never finish.
    In time 2, these first data are encrypted. The server receives these data and It doesn't understand. In time 3, the server sends a HTTP response "501 Method Not Implemented", here there is a problem because this data must be encrypt. According to the documentation that I read, the proxy cannot "understand" this data but I can "understand" this data. What's happen?
    Firefox encrypt the data and send to the proxy. This It's correct.
    The proxy encrypt the data another time, because I use the SSLSocket to send the data to the server. Then the server receives the data encrypted two times, when decrypt the data gets the data encrypted one time. And this is the reason why the server doesn't understand the data that sends Firefox. It's correct? May be.
    Then If I want that the server receives the data encrypted one time I need to use the socketToServer, It's correct?
    I will supposed that yes. If I use the socketToServer, the proxy doesn't understand nothing, because the data received from the socketToServer are encrypted (I only see simbols), but the Apache log says that there is a problem with the version? (If I use the socketToServer the threads die)
    >
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 read finished A
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 write change cipher spec A
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 write finished A
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 flush data
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1756): OpenSSL: Handshake: done
    [Tue May 04 19:55:42 2010] [info] Connection: Client IP: 127.0.0.1, Protocol: TLSv1, Cipher: RC4-MD5 (128/128 bits)
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1817): OpenSSL: read 5/5 bytes from BIO#29bd910 [mem: 29ea0a8] (BIO dump follows)
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1750): -------------------------------------------------------------------------
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1789): | 0000: 80 7f 01 03 .... |
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1793): | 0005 - <SPACES/NULS>
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1795): ------------------------------------------------------------------------
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
    [Tue May 04 19:55:42 2010] [info] [client 127.0.0.1] SSL library error 1 reading data
    [Tue May 04 19:55:42 2010] [info] SSL Library Error: 336130315 error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
    [Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
    [Tue May 04 19:55:42 2010] [info] [client 127.0.0.1] Connection closed to child 63 with standard shutdown (server localhost:443)
    >
    What option is the correct? I need use the SSLSocketToServer or socketToServer to send/read the data to/from the server?. Use the SSLSocket has sense because the data travel in a secure socket, but use the Socket also has sense because the data are encrypted and they are protected by this encription. It's complicated...

  • Business Service with multiple HTTP Request Methods

    hi all -
    I'm new to OSB and trying to prototype a solution. I have a service provider that exposes a number of HTTP operations (GET/PUT/POST/DELETE). It's a JAX-RS implementation.
    I was looking to create 1 proxy service and 1 business service for that service provider. But, within my business service, I must chose a 'HTTP Request Method' and it allows only 1 type (either GET, PUT, POST, DELETE). So, I have something working, but only for a single type (POST in my prototype). I figure I could create more proxy and business services for the other HTTP Request Methods, but I'm not sure if this is the correct approach (design/architecture).
    My other thought was to create a proxy service to front the service provider, but looking at the documentation, it looks like there should be a business service for each proxy service. If it's possible to use a proxy service without a business service to mediate the service provider, where would I add my URLs for the service provider in the proxy service.
    My apologies on the 2 part architecture/design question. I thought the group would help with getting me started.
    thanks jim

    Hi,
    Frankly I dont know too much on this topic but following links may help you:
    http://help.sap.com/saphelp_nw04/helpdata/en/25/dda73e5b7a424de10000000a114084/frameset.htm
    Troubleshooting ICF: http://help.sap.com/saphelp_nw04/helpdata/en/80/b2dd3a6dac703be10000000a11405a/content.htm
    Possibly experts in this forum will be able to help you:  Application Server->Internet Transaction Server (ITS)
    Regards,
    Gourav

  • Long HTTP Request/Response round trip time on new Azure Websites under BizSpark Plus

    Hi,
    I have a very difficult situation. I am busy migrating from a traditional VM architecture to Azure Websites. This is after a few months of testing and being happy that Azure Websites can provide the performance necessary for our application. The TEST site
    I set up is running great and meets all the performance requirements. The TEST site is set up under my normal BizSpark subscription.
    We have since been awarded a BizSpark Plus subscription and I have started the migration process on this subscription, as opposed to the normal BizSpark basic subscription.
    However, since starting our migration process, I am experiencing huge latency on the HTTP request roundtrip from browser to server and back for my newly created LIVE Azure Website instance. I have investigated and observed the statistics between the TEST
    and LIVE instances. Here is a test run against the 2 environments on a particular screen of our application. Here are the times for the full roundtrip for each AJAX HTTP request of the specific actions:
    TEST (Azure Website on BizSpark subscription):
    GetAudioSource - 267ms
    LogStartEvent - 196ms
    LogProgress - 243ms
    Retrieval of Audio file - 2.06s
    LIVE (Azure Website on BizSpark Plus subscription):
    GetAudioSource - 938ms
    LogStartEvent - 3.61s
    LogProgress - 5.11s
    Retrieval of Audio file - 5.97s
    There is clearly something wrong with the routing of the LIVE instance starting at the load balancer.
    This is not the only place affected. In fact, all the HTTP requests are very lagged and delayed in the LIVE instance as opposed to hardly noticeable in the TEST instance.
    I am wondering if there is a lower priority being afforded to my BizSpark Plus subscription running my LIVE instance, of if I am just unlucky with the underlying infrastructure that has been selected on my behalf. Or, is it possible that something can be
    done to enhance and optimise the routing etc?
    I also need to say that I have matched the Azure Website configuration and scale settings to be exactly the same between the 2 instances and have also set Always On to ON.
    Any help or thoughts will be greatly appreciated, because I am starting to seriously doubt the service levels of the Azure Websites platform.
    Thank you
    Ozzy

    Hello Ozzy Vox,
    1. Which region(data center) do you have your websites deployed in?
    Ideally there would be no change in terms of type of subsciptions when you deploy your website in production.
    I suggest that you set up diagnostics on to your Azure websites to get the logs to understand where it is spending most of its time and the reason behind the latency.
    You can refer to this link that will give you information on 'How to Monitor Websites':
    http://azure.microsoft.com/en-in/documentation/articles/web-sites-monitor/
    Also refer to this link regarding 'Enable diagnostic logging for Azure Websites':
    http://azure.microsoft.com/en-in/documentation/articles/web-sites-enable-diagnostic-log/
    Thanks,
    Syed Irfan Hussain

  • When trying to EMAIL from BEX Broadcaster get a 400 bad HTTP request

    When we try to run an email from BEX broadcaster, we get the message below.   We looked in the ICM and it says the request is too large, but when when I copy the request and paste it into the browser it works,  any ideals?
    400 Bad HTTP request
    Bad HTTP request
    Error:     -21
    Version:     7000
    Component:     HTTP_FILTER
    Date/Time:     Mon Apr 05 17:54:18 2010
    Module:     http_auth.c
    Line:     494
    Server:     biprd_BIP_11
    Error Tag:     
    Detail:     illegal request

    Hi David,
    Not exactly sure what the issue is here, but would like to give you some pointers that might help anyway. The error message you see in the ICM would be where I would start. You need to remember that the HTTP request is more than just the URL that you paste into the browser, the URL is one part of it, but there are a heap of other things that go into making the full HTTP request (e.g. POST data, header values etc...)
    I would also refer you to this forum post: Re: 400 Bad HTTP request that references SAP Note 864878
    Hope this helps,
    Simon

Maybe you are looking for

  • Update Metadata in Elements 12

    Is there a way to have the  metadata automatically update to the original file or do we have to manually do it all the time?

  • Please check my code where i am wrong ,-very urgent please

    Hi , i am getting all values execpt the values from table t685  , kolnr and kotabnr and i am using three selects and moving the values in it_output_report. this is very urgent REPORT zmaster_condition LINE-COUNT 80 LINE-SIZE  225.      D A T A       

  • How do I customize the Email Attachment name in Email Bursting?

    I had worked on BI Publisher extensively on 10g and 11g. I have a client requirement with BIP email bursting to deliver the reports as email attachments. I'm able to do it, and also customize mail body etc. However the email attachment file name is r

  • Iphone is dead and wont charge

    my iphone 5 wont charge, ive tried the power point and the computer and nothing is working. I even cleaned the inside with a paper clip but nothing came out, there must be an issue with the cable. Its still fairly new only 2/3 months old... HELP PLEA

  • Image In The Master

    Dear Support Team, We are using SAP B1 2007 B. Can I store an image along with an item in the item master and later send it to the customer. Any help in this is really needed. Thanking you Pradnya