Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've just installed Tomcat on CentOS 6.3.

# yum install tomcat6
# service tomcat6 start

According to the tutorials I've looked at, I should be able to see a test page now.

# curl -I 127.0.0.1:8080
HTTP/1.1 400 Bad Request
...

# curl -I 127.0.0.1:8080/manager/html
HTTP/1.1 400 Bad Request
...

Why am I getting 400 here? Is there something else that I need to configure?

share|improve this question
add comment

2 Answers

up vote 4 down vote accepted

Tomcat always returns status code 400

Because the webapps directory is empty:

# ls -l /usr/share/tomcat6/webapps/
total 0

https://issues.apache.org/bugzilla/show_bug.cgi?id=50734

Either create a dummy ROOT context to get a 404 status:

# mkdir /usr/share/tomcat6/webapps/ROOT

# ls -l /usr/share/tomcat6/webapps/
total 4
drwxr-xr-x 2 root root 4096 Feb 22 07:47 ROOT

# service tomcat6 restart
Stopping tomcat6:                                          [  OK  ]
Starting tomcat6:                                          [  OK  ]

# curl -I localhost:8080
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 955
Date: Fri, 22 Feb 2013 06:48:06 GMT

or... install the tomcat6-webapps package to get a 200:

yum info tomcat6-webapps

Name        : tomcat6-webapps
Arch        : noarch
Version     : 6.0.24
Release     : 48.el6_3
Size        : 609 k
Repo        : updates
Summary     : The ROOT and examples web applications for Apache Tomcat
URL         : http://tomcat.apache.org/
License     : ASL 2.0
Description : The ROOT and examples web applications for Apache Tomcat.

tree -L 2 /usr/share/tomcat6/webapps/

/usr/share/tomcat6/webapps/
├── examples
│   ├── index.html
│   ├── jsp
│   ├── servlets
│   └── WEB-INF
├── ROOT
│   ├── asf-logo-wide.gif
│   ├── build.xml
│   ├── favicon.ico
│   ├── index.html
│   ├── index.jsp
│   ├── RELEASE-NOTES.txt
│   ├── tomcat.gif
│   ├── tomcat-power.gif
│   ├── tomcat.svg
│   └── WEB-INF
└── sample
    ├── hello.jsp
    ├── images
    ├── index.html
    ├── META-INF
    └── WEB-INF

10 directories, 12 files

curl -I localhost:8080

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"7777-1357565143000"
Last-Modified: Mon, 07 Jan 2013 13:25:43 GMT
Content-Type: text/html
Content-Length: 7777
Date: Fri, 22 Feb 2013 06:52:04 GMT
share|improve this answer
    
Ah, I knew it would be something simple. Thanks for such a well written answer! –  Dean Feb 22 '13 at 19:26
add comment

If you're seeing this error, but you're in an environment where other webapps already exist, you can simply create a ROOT directory, then create a zero byte index.html inside of it. A 200 will be readily returned upon successful curl.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.