View Javadoc

1   /*
2    * $Id: GWUIWebStartServlet.java 1537 2011-07-27 15:34:04Z hoheisel $
3    *
4    * Copyright (c) 2005-2006, The K-Wf Grid Consortium
5    * Fraunhofer Institute for Computer Architecture and Software Technology
6    * See http://www.kwfgrid.eu and http://www.first.fraunhofer.de for more details.
7    */
8   
9   package net.kwfgrid.gwes.servlet;
10  
11  import org.antlr.stringtemplate.StringTemplate;
12  import org.apache.log4j.Logger;
13  
14  import javax.servlet.ServletException;
15  import javax.servlet.http.HttpServlet;
16  import javax.servlet.http.HttpServletRequest;
17  import javax.servlet.http.HttpServletResponse;
18  import java.io.IOException;
19  import java.io.PrintWriter;
20  import java.net.MalformedURLException;
21  
22  import net.kwfgrid.gwes.client.RemoteGWES;
23  
24  /**
25   * Servlet for creating jnlp for the GWUI java webstart application.
26   *
27   * @author Andreas Hoheisel
28   *         (<a href="http://www.andreas-hoheisel.de">www.andreas-hoheisel.de</a>)
29   * @version $Id: GWUIWebStartServlet.java 1537 2011-07-27 15:34:04Z hoheisel $
30   */
31  public class GWUIWebStartServlet extends HttpServlet {
32  
33      final static Logger logger = Logger.getLogger(GWUIWebStartServlet.class);
34      private static GWESProperties pr;
35  
36      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
37          ServletLogger.log(request);
38  
39          //read gwes.properties
40          if (pr == null) pr = GWESProperties.getInstance("/gwes.properties");
41  
42          PrintWriter out = response.getWriter();
43  
44          // get workflow ID
45          String workflowID = request.getParameter("workflowid");
46          if (workflowID == null) {
47              workflowID = (String) request.getSession().getAttribute("workflowid");
48          } else {
49              request.getSession().setAttribute("workflowid",workflowID);
50          }
51          logger.debug("session workflow = "+workflowID);
52  
53          try {
54              response.setContentType("application/x-java-jnlp-file");
55              StringTemplate t = Template.getStringTemplateGroup("html_gwes-servlets").getInstanceOf("webstart");
56              if (workflowID!=null) t.setAttribute("workflowID", workflowID);
57              t.setAttribute("gwesBaseUrlExternal", pr.gwesBaseUrlExternal);
58              out.print(t.toString());
59          } catch (Exception e) {
60              out.println("<hr><b>ERROR starting GWUI Web Start: " + e + "</b>");
61              out.println("<pre>");
62              e.printStackTrace(out);
63              out.println("</pre>");
64              out.println("<hr>");
65          }
66      }
67  
68      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
69          doGet(request, response);
70      }
71  
72  }