users@jersey.java.net

Re: [Jersey] Can I write a webservice that recieves a POST request without any parameters?

From: Paul Sandoz <Paul.Sandoz_at_oracle.com>
Date: Tue, 5 Oct 2010 12:40:25 +0200

Hi,

What version of Jersey are you using?

What you want to do should be possible and is tested, no request
entity, if present, will be read and a 204 response will be returned.

Paul.

On Oct 4, 2010, at 7:22 PM, panama joe wrote:

>
> So, basically, I'm wanting to trigger an event on my server that
> doesn't
> require any parameters. Specifically, I'm wanting to clear out a
> value
> that's being held in memory. Now, WebResource exposes a parameter-
> less POST
> method, so I can write a JUnit test that looks like this :
>
> try {
> URI baseUri =
> UriBuilder.fromUri("http://localhost:8081/myWebApp/rest/Semaphore/Clear
> ").build();
> WebResource service = client.resource(baseUri);
> service.post();
> System.out.println("Semaphore cleared");
> }
> catch (Exception ex) {
> fail(ex.toString());
> }
>
> So I would think that I should be allowed to write webservice code
> that
> looks like this :
>
> @Path("/Semaphore")
> public class Semaphore {
> static private Result lastResult = SemaphoreConstants.NULL_RESULT;
> static private Status status = Status.STABLE;
> static private Object RESULT_LOCK = new Object();
>
> @POST
> @Path("Clear")
> static public void clear() {
> synchronized(RESULT_LOCK) {
> status = Status.STABLE;
> lastResult = SemaphoreConstants.NULL_RESULT;
> }
> }
>
> ...
>
> }
>
> However, when I hit that webservice with my JUnit test, I get back :
> junit.framework.AssertionFailedError:
> com.sun.jersey.api.client.UniformInterfaceException: POST
> http://localhost:8081/myWebApp/rest/Semaphore/Clear returned a
> response
> status of 400
>
> I know that I could just implement this function as a GET request,
> but that
> seems semantically wrong. Likewise, I know that I could implement
> it as a
> more traditional POST request where I'm actually providing the
> NULL_RESULT
> values as parameters, but that seems cumbersome and unnecessary.
>
> Is there a way to successfully receive a POST request without
> parameters?
> Or do I just need to suck it up and implement this differently?
> --
> View this message in context: http://jersey.576304.n2.nabble.com/Can-I-write-a-webservice-that-recieves-a-POST-request-without-any-parameters-tp5600043p5600043.html
> Sent from the Jersey mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>