You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by wo...@apache.org on 2005/05/14 03:46:48 UTC
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler WebServiceSampler.java
woolfel 2005/05/13 18:46:48
Modified: src/protocol/http/org/apache/jmeter/protocol/http/sampler
WebServiceSampler.java
Log:
improved the error handling a bit.
peter lin
Revision Changes Path
1.21 +48 -28 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/WebServiceSampler.java
Index: WebServiceSampler.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/WebServiceSampler.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- WebServiceSampler.java 9 Apr 2005 15:06:25 -0000 1.20
+++ WebServiceSampler.java 14 May 2005 01:46:48 -0000 1.21
@@ -44,6 +44,7 @@
import org.apache.soap.transport.SOAPTransport;
import org.apache.soap.transport.http.SOAPHTTPConnection;
import org.apache.soap.util.xml.XMLParserUtils;
+import org.apache.soap.SOAPException;
import org.w3c.dom.Document;
/**
@@ -400,6 +401,7 @@
doc = XDB.parse(new FileInputStream(retrieveRuntimeXmlData()));
} catch (Exception e){
// there should be a file, if not fail silently
+ log.debug(e.getMessage());
}
} else {
FILE_CONTENTS = getXmlData();
@@ -448,6 +450,7 @@
// create a new message
Message msg = new Message();
RESULT.setURL(this.getUrl());
+ RESULT.setSampleLabel(this.getUrl().toString());
RESULT.sampleStart();
SOAPHTTPConnection spconn = null;
// if a blank HeaderManager exists, try to
@@ -497,33 +500,47 @@
}
SOAPTransport st = msg.getSOAPTransport();
- BufferedReader br = st.receive();
RESULT.setDataType(SampleResult.TEXT);
- if (this.getPropertyAsBoolean(READ_RESPONSE))
- {
- StringBuffer buf = new StringBuffer();
- String line;
- while ((line = br.readLine()) != null)
+ BufferedReader br = null;
+ // check to see if SOAPTransport is not nul and receive is
+ // also not null. hopefully this will improve the error
+ // reporting. 5/13/05 peter lin
+ if (st != null && st.receive() != null){
+ br = st.receive();
+ if (this.getPropertyAsBoolean(READ_RESPONSE))
{
- buf.append(line);
+ StringBuffer buf = new StringBuffer();
+ String line;
+ while ((line = br.readLine()) != null)
+ {
+ buf.append(line);
+ }
+ RESULT.sampleEnd();
+ // set the response
+ RESULT.setResponseData(buf.toString().getBytes());
}
- RESULT.sampleEnd();
- // set the response
- RESULT.setResponseData(buf.toString().getBytes());
- }
- else
- {
- // by not reading the response
- // for real, it improves the
- // performance on slow clients
- br.read();
- RESULT.sampleEnd();
+ else
+ {
+ // by not reading the response
+ // for real, it improves the
+ // performance on slow clients
+ br.read();
+ RESULT.sampleEnd();
+ RESULT.setResponseData(
+ JMeterUtils
+ .getResString("read_response_message")
+ .getBytes());
+ }
+ RESULT.setSuccessful(true);
+ RESULT.setResponseCode("200");
+ RESULT.setResponseHeaders(this.convertSoapHeaders(st.getHeaders()));
+ } else {
+ RESULT.setSuccessful(false);
RESULT.setResponseData(
- JMeterUtils
- .getResString("read_response_message")
- .getBytes());
+ st.getResponseSOAPContext().getContentType().getBytes());
+ RESULT.setResponseCode("000");
+ RESULT.setResponseHeaders("error");
}
- RESULT.setSuccessful(true);
// 1-22-04 updated the sampler so that when read
// response is set, it also sets SamplerData with
// the XML message, so users can see what was
@@ -544,16 +561,19 @@
// soap will return a descriptive error
// message, soap errors within the response
// are preferred.
- RESULT.setResponseCode("200");
- RESULT.setResponseHeaders(this.convertSoapHeaders(st.getHeaders()));
- RESULT.setSampleLabel(this.getUrl().toString());
- br.close();
+ if (br != null){
+ br.close();
+ }
msg = null;
st = null;
// reponse code doesn't really apply, since
// the soap driver doesn't provide a
// response code
}
+ catch (SOAPException exception){
+ log.debug(exception.getMessage());
+ RESULT.setSuccessful(false);
+ }
catch (Exception exception)
{
log.debug(exception.getMessage());
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org