Forum Discussion

JKowalczyk's avatar
JKowalczyk
Occasional Contributor
14 years ago

Wrapped entity must not be null exception on 204 No Content

Hi All,

I have this problem with SoapUI 4.5.0-Beta 1.
Whenever I'm making a REST request and I'm expecting a 204 No Content, I got this error:
"Error getting response; java.lang.IllegalArgumentException: wrapped entity must not be null"

Below is the error log, example req and resp.

ps. I've got the same error when I'm using regular DELETE method instead of mentioned POST with override header.

Cheers,
Janusz

Error:

Tue Mar 20 10:24:00 GMT 2012:ERROR:java.lang.IllegalArgumentException: wrapped entity must not be null
java.lang.IllegalArgumentException: wrapped entity must not be null
at org.apache.http.entity.HttpEntityWrapper.<init>(HttpEntityWrapper.java:61)
at org.apache.http.entity.BufferedHttpEntity.<init>(BufferedHttpEntity.java:58)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpMethodSupport.getResponseBody(HttpMethodSupport.java:269)
at com.eviware.soapui.impl.wsdl.submit.transports.http.support.methods.ExtendedPostMethod.getResponseBody(ExtendedPostMethod.java:128)
at com.eviware.soapui.impl.wsdl.submit.transports.http.BaseHttpResponse.<init>(BaseHttpResponse.java:89)
at com.eviware.soapui.impl.wsdl.submit.transports.http.SinglePartHttpResponse.<init>(SinglePartHttpResponse.java:42)
at com.eviware.soapui.impl.wsdl.submit.filters.HttpPackagingResponseFilter.httpRequest(HttpPackagingResponseFilter.java:85)
at com.eviware.soapui.impl.wsdl.submit.filters.HttpPackagingResponseFilter.afterAbstractHttpResponse(HttpPackagingResponseFilter.java:50)
at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.afterRequest(AbstractRequestFilter.java:64)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:300)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)



Request:

DEBUG:>> "POST /blablabla/paramams_bla_bla_bla HTTP/1.1[\r][\n]"
DEBUG:>> "Accept-Encoding: gzip,deflate[\r][\n]"
DEBUG:>> "Accept: application/json[\r][\n]"
DEBUG:>> "X-HTTP-Method-Override: DELETE[\r][\n]"
DEBUG:>> "Content-Type: application/x-www-form-urlencoded[\r][\n]"
DEBUG:>> "Content-Length: 0[\r][\n]"
DEBUG:>> "Host: whatever.com[\r][\n]"
DEBUG:>> "Connection: Keep-Alive[\r][\n]"
DEBUG:>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
DEBUG:>> "Cookie: sessionid=bla_bla_bla[\r][\n]"
DEBUG:>> "Cookie2: $Version=1[\r][\n]"
DEBUG:>> "[\r][\n]"


Response:

DEBUG:<< "HTTP/1.1 204 NO CONTENT[\r][\n]"
DEBUG:<< "Server: nginx[\r][\n]"
DEBUG:<< "Date: Tue, 20 Mar 2012 10:25:24 GMT[\r][\n]"
DEBUG:<< "Content-Type: application/json; charset=utf-8[\r][\n]"
DEBUG:<< "Connection: keep-alive[\r][\n]"
DEBUG:<< "Vary: Authorization,Accept-Language,Cookie[\r][\n]"
DEBUG:<< "Content-Language: en-gb[\r][\n]"
DEBUG:<< "Content-Length: 0[\r][\n]"
DEBUG:<< "Age: 0[\r][\n]"
DEBUG:<< "Via: 1.1 varnish[\r][\n]"
DEBUG:>> "[\r][\n]"

3 Replies

  • JKowalczyk's avatar
    JKowalczyk
    Occasional Contributor
    Just checked it in Beta2.
    Works better, but the request and the response are not visible in a test step window.
    Instead of them SoapUI displays only:

    <missing raw request data>
    or
    <missing raw response data>
  • JKowalczyk's avatar
    JKowalczyk
    Occasional Contributor
    I forgot to mention that assertions like Valid HTTP Status Codes works just fine and I can also access the response data using script assertions like:

    String actual = new String(messageExchange.responseHeaders["Content-Type"].getAt(0).toString())
    String expected = "application/json; charset=utf-8";
    assert actual.equals( expected ), "Actual Content-Type: '" + actual + "' does not match expected: '" + expected + "'";

    So the only problem is with displaying it inside of the window.

    Cheers,
    JK