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]