 <p>Do I understand it correctly? You want to invoke something like...</p> <pre><code>postUser(user); postFile(myFile); </code></pre> <p>and in the client, to process the two different requests in some stateful manner(the receiver is supposed to know that ).</p> <pre><code>@Post public void userPost(String name) { User.getInstance().addUser(name); } @Post public void filePost(File file) { //processing the file, ONLY IF the userPost method is already invoked } </code></pre> <p>Instead, can you encapsulate the two requests in one(one request with two parameters). Something like</p> <pre><code> postUserFile(user,file); </code></pre> <p>And in the request reciever...</p> <pre><code>@Post public void nameFilePost(String name, File file) { userPost(name); filePost(file) } </code></pre> <p>I don't recognize the framework which you are using, but in <a href="http://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services" rel="nofollow">JAX-RS</a> the method will looks something like this</p> <pre><code>@PATH("/yourPath/") public class YourClassNameHere{ @POST public void nameFilePost(@QueryParam("name") String name, @QueryParam("file") File file) { userPost(name); filePost(file) } } </code></pre> <p>One last thing: Don't use Singletons, they are global variables, and therefore bad. <a href="http://c2.com/cgi/wiki?GlobalVariablesAreBad" rel="nofollow">Why global variables are bad.</a></p>