powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring не находит путь или я не так делаю?
17 сообщений из 17, страница 1 из 1
Spring не находит путь или я не так делаю?
    #39667728
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть контроллер:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@RestController(value = "/api/")
public class ApiController {

    @Autowired
    private PeopleRepository peopleRepository;

    private static final Logger LOGGER = LogManager.getLogger(ApiController.class);

    @PostMapping(value = "/save")
    public Response save(Response response, @RequestBody People people) throws SQLException {

        LOGGER.info(people);

        if(peopleRepository.save(people)) {
            response.setSuccess("OK");
        } else {
            response.setError("Error");
        }

        return response;
    }

}



Я делаю запрос http://localhost:8080/api/save но в консоли сервера спринг мне пишет такое: No mapping found for HTTP request with URI [/api/save] in DispatcherServlet with name 'dispatcher'.

Разве не должно работать?
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667730
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@RestController(value = "/api") - так тоже не работает
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667731
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а прописано какую директорию спринг должен сканить, чтобы искать компоненты?
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667734
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixicа прописано какую директорию спринг должен сканить, чтобы искать компоненты?

Настройка DispatcherServlet

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <mvc:annotation-driven />
    <context:annotation-config />

    <context:component-scan base-package = "com.server.controller"/>

    <mvc:resources mapping="/resources/**" location="/resources/" />

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="268435456"/>
    </bean>

    <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name = "prefix" value = "/WEB-INF/views/" />
        <property name = "suffix" value = ".jsp" />
    </bean>

</beans>
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667735
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApiController не создался. Как его создать - десятки вариантов. Выше предложили директори скан
но поскольку ты новичок - то делай явное создание бина с именем. И залоггируй его процесс создания
в пост-конструкторе.

Думай о последовательности действий чтоб не быть почемучкой.
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667736
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixicа прописано какую директорию спринг должен сканить, чтобы искать компоненты?
да и он все находит. всу вижу в логах
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667737
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonApiController не создался. Как его создать - десятки вариантов. Выше предложили директори скан
но поскольку ты новичок - то делай явное создание бина с именем. И залоггируй его процесс создания
в пост-конструкторе.

Думай о последовательности действий чтоб не быть почемучкой.

Спринг все находит и я это вижу в логах сервера.
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667738
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
web.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--<welcome-file-list>
        <welcome-file>index</welcome-file>
    </welcome-file-list>-->

    <display-name>Server</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


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

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667743
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты пишешь

Я делаю запрос http://localhost:8080/api/save

У тебя запрос класса POST. А как ты его дёргаешь?
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667746
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Ajax POST запрос. AJAX делаю из JQ.

Код: javascript
1.
2.
3.
4.
5.
6.
$.ajax({
            type: 'POST',
            url: url,
            data: data,
            dataType: 'json'
        });
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667747
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот логи сервера на скан пакета

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
2018-06-29 20:11:47.113 [INFO] [thread-id 22] org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) - FrameworkServlet 'dispatcher': initialization started
2018-06-29 20:11:47.125 [INFO] [thread-id 22] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:590) - Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Jun 29 20:11:47 EEST 2018]; parent: Root WebApplicationContext
2018-06-29 20:11:47.126 [INFO] [thread-id 22] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:316) - Loading XML bean definitions from class path resource [dispatcher-servlet.xml]
2018-06-29 20:11:47.769 [INFO] [thread-id 22] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:547) - Mapped "{[/save],methods=[POST],consumes=[application/json],produces=[application/json]}" onto public com.linkedin.people.parser.server.entity.Response com.linkedin.people.parser.server.controller.ApiController.save(com.server.entity.Response,com..server.entity.People) throws java.sql.SQLException
2018-06-29 20:11:47.772 [INFO] [thread-id 22] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:547) - Mapped "{[/ || /index]}" onto public java.lang.String com.linkedin.people.parser.server.controller.BaseController.index()
2018-06-29 20:11:48.493 [INFO] [thread-id 22] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(RequestMappingHandlerAdapter.java:574) - Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Jun 29 20:11:47 EEST 2018]; parent: Root WebApplicationContext
2018-06-29 20:11:48.600 [INFO] [thread-id 22] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(RequestMappingHandlerAdapter.java:574) - Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Jun 29 20:11:47 EEST 2018]; parent: Root WebApplicationContext
2018-06-29 20:11:48.677 [INFO] [thread-id 22] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:373) - Mapped URL path [/api] onto handler '/api'
2018-06-29 20:11:48.737 [INFO] [thread-id 22] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:373) - Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
2018-06-29 20:11:48.903 [INFO] [thread-id 22] org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:509) - FrameworkServlet 'dispatcher': initialization completed in 1789 ms
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667758
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop, а если попробовать вместо @PostMapping
его более "раскрытую" версию
@RequestMapping(value = "/save", method = RequestMethod.POST)
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667763
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение в следующем:

1. Добавить

Код: java
1.
2.
@RestController
@RequestMapping(value = "/api/")



2. Разрешить CORS.
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667765
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так нормально работает.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@RestController()
public class TestController {

    private static final Logger LOGGER = LoggerFactory.getLogger(TestController.class);

    @GetMapping("/api/hello")
    public String hello() {
        return "Hello";
    }

    @PostMapping("/api/save")
    public Response save(Response response, @RequestBody People people) throws SQLException {

        LOGGER.info("OK");


        return null;
    }

}
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667766
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... CORS тут вообще причем? Это к доменам относится а не к путям.
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667776
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВот так нормально работает.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@RestController()
public class TestController {

    private static final Logger LOGGER = LoggerFactory.getLogger(TestController.class);

    @GetMapping("/api/hello")
    public String hello() {
        return "Hello";
    }

    @PostMapping("/api/save")
    public Response save(Response response, @RequestBody People people) throws SQLException {

        LOGGER.info("OK");


        return null;
    }

}



оно то так работает, но писать в каждом запросе "/api" не удобно.
...
Рейтинг: 0 / 0
Spring не находит путь или я не так делаю?
    #39667777
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonХм... CORS тут вообще причем? Это к доменам относится а не к путям.
я делал ajax запросы с расширения для хрома. а там видать это запрещено было. ну то бишь не с того же домена на котором сервер находится.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring не находит путь или я не так делаю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]