private WebResource getResource( HttpRequest request ) throws IOException { Object resource = _resources.get( request.getURI() ); if (resource == null) resource = _resources.get( withoutParameters( request.getURI() ) ); } else if (resource instanceof PseudoServlet) { return getResource( (PseudoServlet) resource, request ); } else if (request.getURI().endsWith( ".class" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); return new WebResource( getClass().getClassLoader().getResourceAsStream( resourceName ), "application/class", 200 ); } else if (request.getURI().endsWith( ".zip" ) || request.getURI().endsWith( ".jar" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); String classPath = System.getProperty( "java.class.path" ); StringTokenizer st = new StringTokenizer( classPath, ":;," );
private WebResource getResource( HttpRequest request ) throws IOException { Object resource = _resources.get( request.getURI() ); if (resource == null) resource = _resources.get( withoutParameters( request.getURI() ) ); } else if (resource instanceof PseudoServlet) { return getResource( (PseudoServlet) resource, request ); } else if (request.getURI().endsWith( ".class" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); return new WebResource( getClass().getClassLoader().getResourceAsStream( resourceName ), "application/class", 200 ); } else if (request.getURI().endsWith( ".zip" ) || request.getURI().endsWith( ".jar" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); String classPath = System.getProperty( "java.class.path" ); StringTokenizer st = new StringTokenizer( classPath, ":;," );
private WebResource getResource( HttpRequest request ) throws IOException { Object resource = _resources.get( request.getURI() ); if (resource == null) resource = _resources.get( withoutParameters( request.getURI() ) ); } else if (resource instanceof PseudoServlet) { return getResource( (PseudoServlet) resource, request ); } else if (request.getURI().endsWith( ".class" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); return new WebResource( getClass().getClassLoader().getResourceAsStream( resourceName ), "application/class", 200 ); } else if (request.getURI().endsWith( ".zip" ) || request.getURI().endsWith( ".jar" )) { for (Iterator iterator = _classpathDirs.iterator(); iterator.hasNext();) { String directory = (String) iterator.next(); if (request.getURI().startsWith( directory )) { String resourceName = request.getURI().substring( directory.length()+1 ); String classPath = System.getProperty( "java.class.path" ); StringTokenizer st = new StringTokenizer( classPath, ":;," );
private boolean respondToRequest( HttpRequest request, HttpResponseStream response ) { debug( "Server thread handling request: " + request ); boolean keepAlive = isKeepAlive( request ); WebResource resource = null; try { response.restart(); response.setProtocol( getResponseProtocol( request ) ); resource = getResource( request ); if (resource == null) { response.setResponse( HttpURLConnection.HTTP_NOT_FOUND, "unable to find " + request.getURI() ); } else { if (resource.closesConnection()) keepAlive = false; if (resource.getResponseCode() != HttpURLConnection.HTTP_OK) { response.setResponse( resource.getResponseCode(), "" ); } String[] headers = resource.getHeaders(); for (int i = 0; i < headers.length; i++) { debug( "Server thread sending header: " + headers[i] ); response.addHeader( headers[i] ); } } } catch (UnknownMethodException e) { response.setResponse( HttpURLConnection.HTTP_BAD_METHOD, "unsupported method: " + e.getMethod() ); } catch (Throwable t) { t.printStackTrace(); response.setResponse( HttpURLConnection.HTTP_INTERNAL_ERROR, t.toString() ); } try { response.write( resource ); } catch (IOException e) { System.out.println( "*** Failed to send reply: " + e ); } return keepAlive; }
private boolean respondToRequest( HttpRequest request, HttpResponseStream response ) { debug( "Server thread handling request: " + request ); boolean keepAlive = isKeepAlive( request ); WebResource resource = null; try { response.restart(); response.setProtocol( getResponseProtocol( request ) ); resource = getResource( request ); if (resource == null) { response.setResponse( HttpURLConnection.HTTP_NOT_FOUND, "unable to find " + request.getURI() ); } else { if (resource.closesConnection()) keepAlive = false; if (resource.getResponseCode() != HttpURLConnection.HTTP_OK) { response.setResponse( resource.getResponseCode(), "" ); } String[] headers = resource.getHeaders(); for (int i = 0; i < headers.length; i++) { debug( "Server thread sending header: " + headers[i] ); response.addHeader( headers[i] ); } } } catch (UnknownMethodException e) { response.setResponse( HttpURLConnection.HTTP_BAD_METHOD, "unsupported method: " + e.getMethod() ); } catch (Throwable t) { t.printStackTrace(); response.setResponse( HttpURLConnection.HTTP_INTERNAL_ERROR, t.toString() ); } try { response.write( resource ); } catch (IOException e) { System.out.println( "*** Failed to send reply: " + e ); } return keepAlive; }
private boolean respondToRequest( HttpRequest request, HttpResponseStream response ) { debug( "Server thread handling request: " + request ); boolean keepAlive = isKeepAlive( request ); WebResource resource = null; try { response.restart(); response.setProtocol( getResponseProtocol( request ) ); resource = getResource( request ); if (resource == null) { response.setResponse( HttpURLConnection.HTTP_NOT_FOUND, "unable to find " + request.getURI() ); } else { if (resource.closesConnection()) keepAlive = false; if (resource.getResponseCode() != HttpURLConnection.HTTP_OK) { response.setResponse( resource.getResponseCode(), "" ); } String[] headers = resource.getHeaders(); for (int i = 0; i < headers.length; i++) { debug( "Server thread sending header: " + headers[i] ); response.addHeader( headers[i] ); } } } catch (UnknownMethodException e) { response.setResponse( HttpURLConnection.HTTP_BAD_METHOD, "unsupported method: " + e.getMethod() ); } catch (Throwable t) { t.printStackTrace(); response.setResponse( HttpURLConnection.HTTP_INTERNAL_ERROR, t.toString() ); } try { response.write( resource ); } catch (IOException e) { System.out.println( "*** Failed to send reply: " + e ); } return keepAlive; }