java-tomcat6-servlet-error
"The requested resource (/ProjectName/servlet/ClassName) is not available."
vi workspace/Projectname/WebContent/WEB-INF/web.xml
For each servlet you want to call, provide a pair of tags like the following,
NOTE: all your <servlet> tags are declared before your <servlet-mapping> tags!
NOTE: <servlet-class> tag contains the fully qualified name of your class, Package and everything (not including .class)
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>your.package.name.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Example from Eclipse's auto generated Servlet (default package)
<servlet>
<description></description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
NOTE: it's easier to let Eclipse build the xml by choosing to add Servlet...
NOTE: after manually fixing a Dynamic Web Project you may have to restart Eclipse
context.xml?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STRANGELY - ADDING A SECOND ONE MANUALLY THIS WAY WORKED...
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ReadFile</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet>
<description></description>
<display-name>ReadFile</display-name>
<servlet-name>ReadFile</servlet-name>
<servlet-class>ReadFile</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReadFile</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
'org.eclipse.jst.jee.server: (project name)' did not find a matching property.
Double click on your tomcat server. It will open the server configuration.
Under server options check ‘Publish module contents to separate XML files’ checkbox. Restart your server.