[MRM-468] incorrect URL reported from failures in WebDAV

Corrected locally the error message being reported by it.could.webdav



git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@584986 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joakim Erdfelt 2007-10-16 00:52:42 +00:00
parent f19ca1f500
commit 1e78efcf9f
1 changed files with 59 additions and 1 deletions

View File

@ -46,6 +46,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@ -161,8 +162,65 @@ public class ProxiedDavServer
// TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots)
if( resourceExists( request ) )
{
davServer.process( request, response );
}
else
{
respondResourceMissing( request, response );
}
}
private void respondResourceMissing( DavServerRequest request, HttpServletResponse response )
{
response.setStatus( HttpServletResponse.SC_NOT_FOUND );
try
{
StringBuffer missingUrl = new StringBuffer();
missingUrl.append( request.getRequest().getScheme() ).append( "://" );
missingUrl.append( request.getRequest().getServerName() ).append( ":" );
missingUrl.append( request.getRequest().getServerPort() );
missingUrl.append( request.getRequest().getServletPath() );
// missingUrl.append( request.getRequest().getPathInfo() );
String message = "Error 404 Not Found";
PrintWriter out = new PrintWriter( response.getOutputStream() );
response.setContentType( "text/html; charset=\"UTF-8\"" );
out.println( "<html>" );
out.println( "<head><title>" + message + "</title></head>" );
out.println( "<body>" );
out.print( "<p><h1>" );
out.print( message );
out.println( "</h1></p>" );
out.print( "<p>The following resource does not exist: <a href=\"" );
out.print( missingUrl.toString() );
out.println( "\">" );
out.print( missingUrl.toString() );
out.println( "</a></p>" );
out.println( "</body></html>" );
out.flush();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
private boolean resourceExists( DavServerRequest request )
{
String resource = request.getLogicalResource();
File resourceFile = new File( managedRepository.getRepoRoot(), resource );
return resourceFile.exists();
}
private void fetchContentFromProxies( DavServerRequest request )
throws ServletException