aboutsummaryrefslogtreecommitdiff
path: root/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java
diff options
context:
space:
mode:
authorgregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-11-20 08:44:42 +0000
committergregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-11-20 08:44:42 +0000
commit9149618d9049d470d0423c4e896ab6c127eb6c02 (patch)
treec103a1aabc756b75ec76e435d13013ffa388f4c3 /spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java
parent72819e05aa9db32ef828d9b35d8980a77d1bd76e (diff)
downloadmoa-id-spss-9149618d9049d470d0423c4e896ab6c127eb6c02.tar.gz
moa-id-spss-9149618d9049d470d0423c4e896ab6c127eb6c02.tar.bz2
moa-id-spss-9149618d9049d470d0423c4e896ab6c127eb6c02.zip
Erstellt.
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@59 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java')
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java111
1 files changed, 111 insertions, 0 deletions
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java
new file mode 100644
index 000000000..1ec18e5cb
--- /dev/null
+++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java
@@ -0,0 +1,111 @@
+/*
+ * Created on 19.11.2003
+ *
+ * (c) Stabsstelle IKT-Strategie des Bundes
+ */
+package at.gv.egovernment.moa.spss.slinterface.servlets;
+
+import java.io.IOException;
+import java.rmi.RemoteException;
+import java.util.Properties;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.rpc.ServiceException;
+
+import org.apache.log4j.Logger;
+import org.apache.xerces.parsers.DOMParser;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import at.gv.egovernment.moa.spss.slinterface.Constants;
+import at.gv.egovernment.moa.spss.slinterface.moainvoker.MOAInvoker;
+
+/**
+ * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
+ */
+public class MOAServlet extends HttpServlet
+{
+ private static Logger logger_ = Logger.getLogger(Constants.LH_SERVLETS_);
+
+ /**
+ * Default constructor.
+ */
+ public MOAServlet()
+ {
+ super();
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException
+ {
+ // Get moa request form http request
+ Document moaXmlRequest = null;
+ DOMParser xmlParser = (DOMParser) this.getServletContext().getAttribute(Constants.WSCP_XMLPARSER_);
+ try
+ {
+ InputSource requestIS = new InputSource(request.getInputStream());
+ xmlParser.parse(requestIS);
+ moaXmlRequest = xmlParser.getDocument();
+ }
+ catch (IOException ioe)
+ {
+ String message = "Getting MOA XML request from http request input failed.";
+ logger_.error(message, ioe);
+ throw new ServletException(message, ioe);
+ }
+ catch (SAXException se)
+ {
+ String message = "Parsing MOA XML request got from http request failed.";
+ logger_.error(message, se);
+ throw new ServletException(message, se);
+ }
+
+ // Send request to MOA SP
+ Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_);
+ String endPoint = initProps.getProperty(Constants.IP_SP_ENDPOINT_);
+ if (endPoint == null)
+ {
+ String message = "No endpoint configured for MOA SP service.";
+ logger_.error(message);
+ throw new ServletException(message);
+ }
+ Document moaXMLResponseDoc = null;
+ try
+ {
+ moaXMLResponseDoc = MOAInvoker.invokeSP(moaXmlRequest, endPoint);
+ }
+ catch (Exception e)
+ {
+ String message;
+ if (e instanceof RemoteException)
+ {
+ message = "MOA SP service indicated an error at request execution.";
+ }
+ else if (e instanceof ServiceException)
+ {
+ message = "MOA SP client indicated an error at request execution.";
+ }
+ else
+ {
+ message = "Could not create DOM Document from MOA SP service response.";
+ }
+ logger_.error(message, e);
+ throw new ServletException(message, e);
+ }
+
+ // Write moa response to http response
+ try
+ {
+ MOAInvoker.serializeDocument(moaXMLResponseDoc, response.getOutputStream());
+ }
+ catch (IOException e)
+ {
+ String message = "Writing MOA SP XML response to http response failed.";
+ logger_.error(message, e);
+ throw new ServletException(message, e);
+ }
+ }
+}