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

Код: 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
29.06.2018, 19:48
    #39667730
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
@RestController(value = "/api") - так тоже не работает
...
Рейтинг: 0 / 0
29.06.2018, 20:00
    #39667731
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
а прописано какую директорию спринг должен сканить, чтобы искать компоненты?
...
Рейтинг: 0 / 0
29.06.2018, 20:06
    #39667734
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
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
29.06.2018, 20:07
    #39667735
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
ApiController не создался. Как его создать - десятки вариантов. Выше предложили директори скан
но поскольку ты новичок - то делай явное создание бина с именем. И залоггируй его процесс создания
в пост-конструкторе.

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

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

Спринг все находит и я это вижу в логах сервера.
...
Рейтинг: 0 / 0
29.06.2018, 20:10
    #39667738
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
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
29.06.2018, 20:14
    #39667743
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
Ты пишешь

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

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

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

Код: 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
29.06.2018, 20:52
    #39667758
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
Tsyklop, а если попробовать вместо @PostMapping
его более "раскрытую" версию
@RequestMapping(value = "/save", method = RequestMethod.POST)
...
Рейтинг: 0 / 0
29.06.2018, 21:14
    #39667763
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
Решение в следующем:

1. Добавить

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



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

Код: 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
29.06.2018, 21:18
    #39667766
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
Хм... CORS тут вообще причем? Это к доменам относится а не к путям.
...
Рейтинг: 0 / 0
29.06.2018, 22:53
    #39667776
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
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
29.06.2018, 22:54
    #39667777
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не находит путь или я не так делаю?
maytonХм... CORS тут вообще причем? Это к доменам относится а не к путям.
я делал ajax запросы с расширения для хрома. а там видать это запрещено было. ну то бишь не с того же домена на котором сервер находится.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring не находит путь или я не так делаю? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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