Rev 2027 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.es.exemplos.hibernate.web.rest;
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.es.exemplos.hibernate.utils.StreamsUtils;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public abstract class AbstractRestServlet
extends HttpServlet
{
@
1.5.0/docs/api/java/lang/Override.html">Override
protected void doGet
(HttpServletRequest req, HttpServletResponse resp
) throws ServletException,
1.5.0/docs/api/java/io/IOException.html">IOException {
process
(req,resp
);
}
@
1.5.0/docs/api/java/lang/Override.html">Override
protected void doPost
(HttpServletRequest req, HttpServletResponse resp
) throws ServletException,
1.5.0/docs/api/java/io/IOException.html">IOException {
process
(req,resp
);
}
protected void process
(HttpServletRequest req, HttpServletResponse resp
) throws ServletException,
1.5.0/docs/api/java/io/IOException.html">IOException
{
JSONObject requestObj
;
if(req.
getContentType().
equalsIgnoreCase("application/json"))
{
5+0%2Fdocs%2Fapi+InputStream">InputStream content = req.
getInputStream();
if(content
!=
null)
{
1.5.0/docs/api/java/lang/String.html">String json = StreamsUtils.
readString(content
);
try {
requestObj =
new JSONObject
(json
);
1.5.0/docs/api/java/lang/System.html">System.
out.
println("REQUEST JSON:");
1.5.0/docs/api/java/lang/System.html">System.
out.
println(requestObj.
toString());
1.5.0/docs/api/java/lang/String.html">String service = requestObj.
getString("service");
1.5.0/docs/api/java/lang/String.html">String data = requestObj.
has("data") ? requestObj.
getString("data") :
null;
1.5.0/docs/api/java/lang/reflect/Method.html">Method innerMethod =
this.
getClass().
getMethod(service,
new 1.5.0/docs/api/java/lang/Class.html">Class[]{
JSONObject.
class,
HttpServletRequest.
class,
HttpServletResponse.
class});
JSONObject obj =
(JSONObject
) innerMethod.
invoke(this,
new 5+0%2Fdocs%2Fapi+Object">Object[]{data,req,resp
});
JSONObject response =
new JSONObject
();
response.
put("service",
"ok");
response.
put("response",obj
);
resp.
setContentType("application/json");
1.5.0/docs/api/java/io/PrintWriter.html">PrintWriter pw = resp.
getWriter();
pw.
write(obj.
toString());
} catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
) {
e.
printStackTrace();
JSONObject response =
new JSONObject
();
try {
response.
put("service",
"error");
response.
put("cause",e.
toString());
resp.
setContentType("application/json");
1.5.0/docs/api/java/io/PrintWriter.html">PrintWriter pw = resp.
getWriter();
pw.
write(response.
toString());
} catch (JSONException e1
) {
e1.
printStackTrace();
}
}
}
}
}
}