При запуске сервера возникает следующая проблема. Не найдено сопоставление HTTP-запроса с URL

Как это решить. у меня есть индекс.jsp но это не открывает, что jsp что я могу сделать?

Ошибка: не найдено сопоставления для HTTP-запроса с URI [/RoomController/] в DispatcherServlet с именем ‘rest’

сеть.XML:

<?xml version="1.0" encoding="UTF-8"?>
<web-app  
 
 
xsi_schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SpringServiceJsonSample</display-name>
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>
    org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Index.jsp</welcome-file>
</welcome-file-list>
</web-app>

rest-сервлет.XML

<?xml version="1.0" encoding="UTF-8"?>
<beans 





xsi_schemaLocation="
    http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <context:property-placeholder location="classpath:resources/database.properties" />
<context:component-scan base-package="com.Room" />
<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>


<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${database.driver}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.user}" />
    <property name="password" value="${database.password}" />
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
    <list>
        <value>com.Room.Model.RoomMembers</value>
        <value>com.Room.Model.MemberInOut</value>
        <value>com.Room.Model.RoomDetails</value>

    </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>             
        </props>
    </property>
</bean>

<bean id="hibernateTransactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
<mvc:annotation-driven />
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>

класс контроллера:

@RestController
@RequestMapping("/Room/")
public class RoomController {

@Autowired
RoomDao roomDao;

@RequestMapping(method = RequestMethod.GET,headers="Accept=application/json")
public String getAllUsers() {
    String users="hello welcome ";
    return users;
}

@RequestMapping(value="/ViewMember",method = RequestMethod.GET)
public List<RoomMembers> getRoomMembers() {
    List<RoomMembers> roomMemberList= new ArrayList<RoomMembers>();
    roomMemberList=roomDao.listMember();
    return roomMemberList;
}

2 ответа

  1. Неверная конфигурация сопоставления. Можно сопоставить контроллер с URI @RequestMappingс помощью, указав valueатрибут в нем следующим образом:

    @RequestMapping(value=»»)

    Поэтому, когда вы определяете свой контроллер, как упомянуто в вопросе, вы можете получить доступ к нему, /Room/а не с /RoomController .

  2. Должен быть метод в вашем контроллере с отображением по умолчанию вашего ‘/ RoomController ‘ и который возвращает индекс.jsp как часть представления следующим образом:

    @RequestMapping(value="/")
    public String displayGui(ModelMap model) {
            // Add value to model
            model.addAttribute(...);
            model.addAttribute(...);
    
            //return to view index.jsp
            return "index";
    }
    

    Так что когда вы попали http://yourIP:port/RoomController , то выше displayGui метод будет вызван и вернет индекс.JSP-страница/