Проблема осталось только я теперь попробую ее формализовать более приближенно к документации производителя.
Пробуем мапить Spring'овый DispatcherServlet web.xml:
<!--SERVLET DEFINITIONS-->
<servlet>
<servlet-name>springfirst</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--SERVLET MAPPINGS-->
<servlet-mapping>
<servlet-name>springfirst</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
Если деплой происходит в рут то любой запрос формата
http://localhost:8080/*.htm должен вызвать DispatcherServlet. Далее по нотации нужно определить springfirst-servlet.xml.
<beans>
<!-- Прописываем SimpleUrlHandlerMapping, то есть теперь из всего множества http://localhost:8080/*.htm - DispatcherServlet будет диспатчить SpringappController'у при указании адреса http://localhost:8080/welcome.htm. Пробовал BeanNameUrlHandlerMapping такой строкой <bean name="/welcome.htm" class="root.SpringappController" /> (соответствено закоментировав SimpleUrlHandlerMapping). -->
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome.htm">springappController</prop>
</props>
</property>
</bean>
<!-- Создаем компанент Controler'а -->
<bean id="springappController" class="root.SpringappController" />
<!-- Создаем View Resolver теперь при указании в ModelAndView строки будет выглядеть так prefix+строка+suffix -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/welcome/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Остается сам класс контролера root.SpringappController:
package root;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
public class SpringappController implements Controller
{
/** Logger for this class and subclasses */
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
logger.info("SpringappController - returning hello view");
// Соответственно так как указали View Resolve будет генериться /welcome/ + hello + .jsp
return new ModelAndView("hello");
}
}
Так же созданы 2 страницы: index.jsp в корне указана в web-app как welcome-file и вторая hello.jsp в папке welcome.
После все мапингов пробуем обраться к
http://localhost:8080/welcome.htm
Получаем ответ:
HTTP Status 404 - Servlet springfirst is not available
type Status report
message Servlet springfirst is not available
description The requested resource (Servlet springfirst is not available) is not available.
Apache Tomcat/5.0.28
Далее пробуем создать обычный сервлет что бы проверить вообше их работоспособность web.xml:
<!--SERVLET DEFINITIONS-->
<servlet>
<servlet-name>simple</servlet-name>
<servlet-class>root.SimpleServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--SERVLET MAPPINGS-->
<servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>*.srv</url-pattern>
</servlet-mapping>
И сам класс сервлета
package root;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
public class SimpleServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.sendRedirect("/welcome/hello.jsp");
}
}
Обрашаясь по адресу
http://localhost:8080/something.srv, получаем ответ точный, как часы.
Мое подозрение что DispatcherServlet не находит firstspring-servlet.xml из за этого все беды (использую JDK 1.4_03 может это как то сказывается). Кто с сталкивался с чем то подобным откликнитесь? Заранее признателен за помошь.