7
votes

I am trying to have a servlet (non-jsp) as my welcome-file in tomcat 7, and the only way I can do it is

by having it mapped to "/" url-pattern, otherwise it returns 404 not found if i try to access the url i.e. http://url/webapp/

Reading servlet 2.4 specs, it allows servlet in the welcome file list, why do I have to map it to "/" url-pattern to get it working?

<servlet>
<servlet-name>credentialServlet</servlet-name>
<servlet-class>com.servlet.CredentialServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>credentialServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>credentialServlet</welcome-file>
</welcome-file-list>   
1

1 Answers

8
votes

I don't know what URL patterns you all tried, but mapping the servlet on /credentialServlet or /credentialServlet/* should definitely work.

<servlet>
    <servlet-name>credentialServlet</servlet-name>
    <servlet-class>com.servlet.CredentialServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>credentialServlet</servlet-name>
    <url-pattern>/credentialServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>credentialServlet</welcome-file>
</welcome-file-list>