Actions.java :  » Location » geloba-moga » gm » server » communication » Android Open Source

Android Open Source » Location » geloba moga 
geloba moga » gm » server » communication » Actions.java
package gm.server.communication;

import java.io.IOException;

import gm.server.controller.SampleServerController;
import gm.server.exception.SessionNotFoundException;
import gm.server.session.Session;
import gm.server.session.SessionManager;
import gm.shared.action.Action;
import gm.shared.utils.Serializer;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;

import org.apache.log4j.Logger;

@Path("/action/{session}")
public class Actions {
  static Logger l = Logger.getLogger(SampleServerController.class);
  
  @POST
  @Produces("text/xml")
  public String computeAction(@PathParam("session") String sid, String action){
    Action a;
    String ret = "";
    Session s;
    
    
    try {
      s = SessionManager.getInstance().getSessionForSessionId(sid);
      if(!s.isOnline())    
        throw new WebApplicationException(Response.Status.UNAUTHORIZED);
    } catch (SessionNotFoundException e1) {
      throw new WebApplicationException(Response.Status.UNAUTHORIZED);
    }
    
    try {
      l.info("Got Action String " + action);
      a = (Action) Serializer.deserialize(action);
      l.info("Serialized to " + a);
      ret = Serializer.serialize(CommunicationsManager.getInstance().runAction(a, s));
      l.info("Returning " + ret);
    } 
    catch (IOException e){
      throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
    }
    catch (ClassNotFoundException e){
      throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
    }
    
    return ret;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.