Project

General

Profile

« Previous | Next » 

Revision 5337

Added by berkley almost 14 years ago

removed CrudService dependency on servlet params. CrudService is now a singleton. I'm getting an error from metacat saying it can't find teh systemmetadata schema, even though it is, in fact, registered with metacat. need to identify why this is happening.

View differences:

MetacatHandler.java
57 57
import javax.servlet.http.HttpServletRequest;
58 58
import javax.servlet.http.HttpServletResponse;
59 59
import javax.servlet.http.HttpSession;
60
import javax.activation.MimetypesFileTypeMap;
60 61

  
61 62
import org.apache.log4j.Logger;
62 63
import org.ecoinformatics.eml.EMLParser;
......
114 115
    private static final String ERROR = "<error>";
115 116
    private static final String ERRORCLOSE = "</error>";
116 117
    
117
    private ServletContext servletContext;
118 118
	private Timer timer;
119 119
	
120
    public MetacatHandler(ServletContext servletContext, Timer timer) {
121
    	this.servletContext = servletContext;
120
    public MetacatHandler(Timer timer) {
122 121
    	this.timer = timer;
123 122
    }
124 123
    
......
955 954
                
956 955
                if (response != null) {
957 956
                    // MIME type
958
                    String contentType = servletContext.getMimeType(filename);
957
                    //String contentType = servletContext.getMimeType(filename);
958
                    String contentType = (new MimetypesFileTypeMap()).getContentType(filename);
959 959
                    if (contentType == null) {
960 960
                        ContentTypeProvider provider = new ContentTypeProvider(
961 961
                                docid);
......
1097 1097
    private void readFromURLConnection(HttpServletResponse response,
1098 1098
            String docid) throws IOException, MalformedURLException {
1099 1099
        ServletOutputStream out = response.getOutputStream();
1100
        String contentType = servletContext.getMimeType(docid); //MIME type
1100
        //String contentType = servletContext.getMimeType(docid); //MIME type
1101
        String contentType = (new MimetypesFileTypeMap()).getContentType(docid);
1101 1102
        if (contentType == null) {
1102 1103
            if (docid.endsWith(".xml")) {
1103 1104
                contentType = "text/xml";
......
1286 1287
     * Handle the database putdocument request and write an XML document to the
1287 1288
     * database connection
1288 1289
     */
1289
    public void handleInsertOrUpdateAction(String ipAddress,
1290
    public String handleInsertOrUpdateAction(String ipAddress,
1290 1291
            HttpServletResponse response, PrintWriter out, Hashtable<String, String[]> params,
1291 1292
            String user, String[] groups) {
1292 1293
        Logger logMetacat = Logger.getLogger(MetaCatServlet.class);
......
1300 1301
        }
1301 1302
        
1302 1303
        if(params.get("docid") == null){
1303
            out.println("<?xml version=\"1.0\"?>");
1304
            out.println("<error>");
1305
            out.println("Docid not specified");
1306
            out.println("</error>");
1307
            logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - Docid not specified");
1308
            return;
1304
            String msg = "<?xml version=\"1.0\"?>" +
1305
                "<error>" +
1306
                "Docid not specified" +
1307
                "</error>";
1308
            if(out != null)
1309
            {
1310
                out.println(msg);
1311
                logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - Docid not specified");
1312
            }
1313
            return msg; 
1309 1314
        }
1310 1315
        
1311 1316
        try {
1312 1317
            if (!AuthUtil.canInsertOrUpdate(user, groups)) {
1313
                out.println("<?xml version=\"1.0\"?>");
1314
                out.println("<error>");
1315
                out.println("User '" + user + "' not allowed to insert and update");
1316
                out.println("</error>");
1318
                String msg = "<?xml version=\"1.0\"?>" +
1319
                "<error>" +
1320
                "User '" + user + "' not allowed to insert and update" +
1321
                "</error>";
1322
                if(out != null)
1323
                {
1324
                  out.println(msg);
1325
                }
1326
                
1317 1327
                logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - User '" + user + "' not allowed to insert and update");
1318
                return;
1328
                return msg;
1319 1329
            }
1320 1330
        } catch (MetacatUtilException ue) {
1321 1331
            logMetacat.error("MetaCatServlet.handleInsertOrUpdateAction - Could not determine if user could insert or update: "
......
1346 1356
            }
1347 1357
            
1348 1358
            if(doctext == null){
1349
                out.println("<?xml version=\"1.0\"?>");
1350
                out.println("<error>");
1351
                out.println("Document text not submitted");
1352
                out.println("</error>");
1359
                String msg = "<?xml version=\"1.0\"?>" +
1360
                "<error>" +
1361
                "Document text not submitted." +
1362
                "</error>";
1363
                if(out != null)
1364
                {
1365
                  out.println(msg);
1366
                }
1367
                
1353 1368
                // TODO: this should really throw an exception
1354
                return;
1369
                return msg;
1355 1370
            }
1356 1371
            
1357 1372
            logMetacat.debug("MetaCatServlet.handleInsertOrUpdateAction - the xml document in metacat servlet (before parsing):\n" + doctext[0]);
......
1463 1478
        }
1464 1479
        
1465 1480
        if (qformat == null || qformat.equals("xml")) {
1466
            response.setContentType("text/xml");
1467
            out.println(output);
1481
            if(response != null)
1482
            {
1483
              response.setContentType("text/xml");
1484
              out.println(output);
1485
            }
1486
            return output;
1468 1487
        } else {
1469 1488
            try {
1470 1489
                DBTransform trans = new DBTransform();
......
1479 1498
                e.printStackTrace(System.out);
1480 1499
            }
1481 1500
        }
1501
        return null;
1482 1502
    }
1483 1503
    
1484 1504
    /**

Also available in: Unified diff