woolfel     2004/01/22 05:40:27

  Modified:    src/protocol/http/org/apache/jmeter/protocol/http/sampler
                        SoapSampler.java
  Log:
  Soap sampler now gets all headers from the HeaderManager and sets
  the headers correctly. the first attempt was bad due to my own lack
  of understanding of header manager.
  
  peter lin
  
  
  Revision  Changes    Path
  1.10      +21 -9     
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/SoapSampler.java
  
  Index: SoapSampler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/SoapSampler.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SoapSampler.java  15 Jan 2004 13:55:58 -0000      1.9
  +++ SoapSampler.java  22 Jan 2004 13:40:27 -0000      1.10
  @@ -11,6 +11,8 @@
   import org.apache.jmeter.samplers.SampleResult;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
  +import org.apache.jmeter.protocol.http.control.HeaderManager;
  +import org.apache.jmeter.protocol.http.control.Header;
   
   /**
    * Sampler to handle SOAP Requests.
  @@ -57,16 +59,20 @@
           connection.setRequestProperty(
               "Content-length",
               "" + getXmlData().length());
  -        // if the user provides a different content type, we use it
  -        // added 1-15-04 peter lin
  -        if (getHeaderManager() != null &&
  -        getHeaderManager().getPropertyAsString(
  -        HTTPSampler.CONTENT_TYPE).length() > 0){
  +        // my first attempt at fixing the bug failed, due to user
  +        // error on my part. HeaderManager does not use the normal
  +        // setProperty, and getPropertyAsString methods. Instead,
  +        // it uses it's own String array and Header object.
  +        if (getHeaderManager() != null){
                        // headerManager was set, so let's set the connection
                        // to use it.
  -                     connection.setRequestProperty("Content-type",
  -                     getHeaderManager().getPropertyAsString(
  -                             HTTPSampler.CONTENT_TYPE));
  +                     HeaderManager mngr = getHeaderManager();
  +                     int headerSize = mngr.size();
  +                     // we set all the header properties
  +                     for (int idx=0; idx < headerSize; idx++){
  +                             Header hd = mngr.getHeader(idx);
  +                                     
connection.setRequestProperty(hd.getName(),hd.getValue());
  +                     }
           } else {
                // otherwise we use "text/xml" as the default
                        connection.setRequestProperty("Content-type", "text/xml");
  @@ -108,10 +114,16 @@
               {
                   setPath(url.getPath());
               }
  +            // make sure the Post header is set
  +            URLConnection conn = url.openConnection();
  +            setPostHeaders(conn);
           }
           catch (MalformedURLException e1)
           {
               log.error("Bad url: " + getURLData(), e1);
  +        }
  +        catch (IOException e1){
  +                     log.error("Bad url: " + getURLData(), e1);
           }
           return super.sample(e);
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to