Ok, wiem, że jest tutaj 20 takich postów z tym samym problemem, ale żaden z nich nie wydaje mi się pomocny, więc prawdopodobnie będzie to duplikat, ale przeszedłem wszystkie inne posty i żaden z nich nie rozwiązał mojego problemu, więc musi być coś, co robię źle lub nie robię odpowiednich modyfikacji z odpowiedzi na poprzednie pytania.Spring RequestMapping 404 status
Próbuję zrobić małą aplikację przy użyciu Spring, a ja wciąż eksperymentuję z nią, ale spędziłem 4 dni próbując dowiedzieć się, co jest nie tak i po prostu nie mogę. Nadal otrzymuję status HTTP 404 za każdym razem, gdy próbuję odzyskać jsp z kontrolera. Nic, tylko 404 statusu przez Tomcat, nic innego ...
WebAppController:
@Controller
public class WebAppController {
@RequestMapping(value="/login", method = RequestMethod.GET)
public String login() {
System.out.println("You have entered the login maprequest");
return "test1";
}
}
web.xml:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Hotel Application</display-name>
<servlet>
<servlet-name>WebApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebApp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
webApp.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.iquestgroup" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Taka konfiguracja robót w prostym projekcie maven tylko z wyżej wymienionym w nim. Problem polega na tym, że dokładnie to samo nie działa w projekcie maven z 3 modułami (persistence, service i webapp). W webappie skopiowałem dokładnie to samo, a kiedy uruchomię go na serwerze, uzyskuję status HTTP 404 ... mimo że moduły budują z powodzeniem.
L.E. Pierwsza część zaakceptowanej odpowiedzi odnosi się do wspólnego błędu mapowania serwerów serwletów popełnionego przez tych, którzy zaczynają od wiosny. Mój problem nie był z nim związany i ostatecznie usunąłem go po wstępnej odpowiedzi. Aby nie stać się kłopotliwe dla czytelników, pierwsza część przyjętej odpowiedź odnosi się do następującego kodu:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Usunąłeś problem "/ *" poza pytaniem! Teraz odpowiedź nie ma sensu. Mówi, żeby zmienić '/* url-pattern>', ale _to *** nie pojawia się *** w pytaniu. –
@StephenP Pytanie zostało zredagowane po wstępnej odpowiedzi i ogłosiłem to w odpowiedzi na komentarz. Wydaje się bezcelowe, aby zachować/*, mimo że nie był to mój problem i jest wiele innych pytań na temat Stack Overflow, które odnoszą się do tego właśnie. Rozumiem twój punkt widzenia i myślę, że masz rację, może to być mylące, więc dodam wzmiankę o tym na końcu pytania. –