Running his first Java Servlet today, one of my delegates reported an HTTP status 405 from his code when he tried to browse to it. A new one on me ... I am used to a good number of other return codes, but hadn't seen this before.
It turns out that the cause was the lack of an appropriate doGet method in the Servlet class; in my delegate's case he
had provided a doGet but with the wrong type of parameters, so instead of providing a method that Tomcat could call up he had provided what was, in effect, an internally available method only. I was able to reproduce the error later for the purpose of this note by simply mis-spelling doGet as doget ... Capital G to lower case g.
Wrong:
public void doget ( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException {
Right:
public void doGet ( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException {
Here are some other common 400 series errors we come across, and their typical causes to help you troubleshoot:
400 - Bad request
Typically this is caused by a user writing his own web client (for example using Web 2 techniques) and so making an illegal instruction call to the server
403 - Forbidden
A file exists on the server that is mapped to the URL that was given,
but that file is not readable by the web server process. Typically, this error occurs when the web site administrator is uploading a file via FTP or copying it into place and gets the file permissions or ownership wrong.
404 - Not Found
The most common of the lot. The request was valid, but doesn't point to anything which exists on the server. It could be that the user (at the browser) has mistyped a URL, it could be that there's a broken link on a web page pointing at thin air, and it could be that a file that should exist on the server doesn't, or has been accidentally deleted. You will also get a lot of 404 errors in your server logs relating to malicious software that's poking around looking for holes in your security!
401 - Unauthorized
The page exists, but the user has failed to enter a correct user name and passwordd to access it. See .htpasswd in the Apache documentation.
(written 2008-01-12 01:06:18)
| Commentator | says ... | | Leah: | Just a note to add that 403 - Forbidden is also returned when a deny by ip address or other parameter is used in an .htaccess file. (comment added 2008-01-14 13:55:01) |
Associated topics are indexed under
A207 - Web Application Deployment - HTTP [2596] Http protocol - what does a web server send - (2010-01-24)
[2321] Uploading and Downloading files - changing names (Perl and PHP) - (2009-08-04)
[1549] http, https and ajp - comparison and choice - (2008-02-22)
[1378] Etag in http headers - what is it? - (2007-10-03)
[484] Setting the file name for a downloaded document - (2005-11-03)
A606 - Web Application Deployment - Apache httpd - log files and log tools [1796] libwww-perl and Indy Library in your server logs? - (2008-09-13)
[1780] Server overloading - turns out to be feof in PHP - (2008-09-01)
[1761] Logging Cookies with the Apache httpd web server - (2008-08-20)
[1656] Be careful of misreading server statistics - (2008-05-28)
[1598] Every link has two ends - fixing 404s at the recipient - (2008-04-02)
[1237] What proportion of our web traffic is robots? - (2007-06-19)
[376] What brings people to my web site? - (2005-07-13)
A654 - Web Application Deployment - Configuring and Controlling Tomcat [2163] CATALINA_OPTS v JAVA_OPTS - What is the difference? - (2009-05-09)
[2061] Tomcat 6 - Annotated Sample Configuration Files - (2009-03-01)
[2039] The Invoker - (2009-02-13)
[1994] tomcat-users.xml; what a difference a space made - (2009-01-16)
[1943] Port and Glasses - (2008-12-14)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1553] Automatic startup and shutdown of Tomcat - (2008-02-24)
[1370] Apache Tomcat Performance Tuning - (2007-09-29)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[914] A practical example of roles - (2006-11-04)
[907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
[837] Tomcat - Shutdown port - (2006-08-18)
Some other Articles
Comments on proposed Asda Superstore for MelkshamOngoing Image Copyright Issues, PHP and MySQL solutionsScript to present commonly used images - PHPFlooding by Asda-s proposed new supermarketWeb page (http) error status 405Java, sorting, ArrayList example, genericsJava - using super to call a method in the parent classFirst Class Java. First step and moving forward.Climate change, renewable resources and paper v plasticJava is a dynamic language .... (and comparison)