@DeleteMapping не распознается

Я новичок в весенних ботинках, мой вопрос очень простой, но я не могу найти, в чем проблема.

У меня есть базовые @GetMapping и @DeleteMapping

@RestController
    public class MyController
    {
       private MyServiceImpl myService;

       @Autowired
       public MyController(MyServiceImpl myService)
       {
          this.myService = myService;
       }

       @GetMapping("/test")
       public List<Scan>  getTestData(@RequestParam(value = "test_id", required = true) String test_id) {
          return myService.findByTestId( test_id );
       }

      @DeleteMapping("/test")
       public int deleteData(@RequestParam(value = "test_id", required = true) String test_id){
          return myService.deleteTest( test_id );
       }

 @DeleteMapping("/test2")
   public String deleteArticle() {
      return "Test";
   }

    }

Я тестирую Postman, запрос Get работает, а запрос на удаление - нет. Даже когда я отлаживаю приложение весенней загрузки. Вызывается GetMapping, а удаление не "реагирует" / вызывается.

Возможно, информации недостаточно, но я даже тестировал, что @DeleteMapping ("/ test2") ничего не делает, я имею в виду, я не получаю ответа, а в Postman он остается "загружается ..."

Какие-либо предложения?

Мой полный POM

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<parent>
    <groupId>com.ttt.pdt</groupId>
    <artifactId>pdt-base</artifactId>
    <version>2.0-SNAPSHOT</version>
</parent>

<artifactId>pdt-service</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.4.0</version>
    </dependency>

</dependencies>
<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Родитель (pdt-base) имеет

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
</parent>

@DeleteMapping не распознается

MyServiceImpl

@Service
public class MyServiceImpl
{
   private ScnDao scnDao;

   @Autowired
   public ScanServiceImpl(ScnDao scnDao){
      this.scnDao = scnDao;
   }

   public int deleteTest( String test_id )
   {
      return scnDao.deleteTest( test_id );
   }

}

public interface ScanDao
{

   int deleteTest( String test_id )
}

@Repository
    public class ScnPostgres implements ScnDao
    {

       private JdbcTemplate jdbcTemplate;

       @Autowired
       public ScnPostgres( JdbcTemplate jdbcTemplate )
       {
          this.jdbcTemplate = jdbcTemplate;
       }

       public int deleteTest( String test_id )
        {
            String SQL = "DELETE FROM scn WHERE test_id = ?";
            return jdbcTemplate.update( SQL, new String[] { test_id } );
        }

    }

какую версию весенней загрузки вы используете? Можешь показать весь пом?

Boris Zhguchev 10.08.2018 11:59

@ БорисЖгучев Я только что добавил помпон

marhg 10.08.2018 12:28

что значит not doing anything? вы получаете ответ любой? может ошибка что ли? Что находится в разделе ответов в Почтальоне?

Debanik Dawn 10.08.2018 12:35

@DebanikDawn Я только что загрузил изображение почтальона, он просто продолжает "загружаться ...", а у меня нет "реакции" в весенней загрузке

marhg 10.08.2018 12:40

Сначала ваш код даже не компилируется, поскольку в вашем контроллере вы используете test_id, который внезапно становится parcel_no. Ваш параметр с именем test_id не соответствует имени test_no, которое вы используете в почтальоне. Пожалуйста, введите здесь правильный код и запрос, в настоящее время есть несоответствие.

M. Deinum 10.08.2018 12:50

Я не уверен в этом, но может быть проблема, потому что у вас есть оба GET и отображение DELETE для /test? Попробуйте сменить сопоставление для удаления на test_delete или что-то еще и скажите мне.

Debanik Dawn 10.08.2018 12:51

@ M.Deinum обновлено

marhg 10.08.2018 12:53

Ваш контроллер ожидает "test_id", а вы отправляете "test_no". Можете ли вы изменить это имя переменной? и что ваш MyServiceImpl делает с данными? можешь показать или описать это?

Boris Zhguchev 10.08.2018 13:16

Вы можете показать весь класс, в котором определена функция deleteArticle ()?

luboskrnac 10.08.2018 13:35

@luboskrnac Я только что добавил метод deleteArticle

marhg 10.08.2018 13:53

@ БорисЖгучев Я только что добавил

marhg 10.08.2018 14:17

MyServiceImpl компилируется? Прохладный. :). Попробуйте изменить jdbcTemplate.update( SQL, new String[] { test_id } ) на jdbcTemplate.update( SQL, test_id ), потому что я не вижу обновления метода с этими символами - api

Boris Zhguchev 10.08.2018 14:47

@ Борис Жгучев На самом деле это сработало, когда я удалил RequestParam (@RequestParam (value = "test_id", required = true) и оставил его как deleteData (). Но мой вопрос ... в DeleteMapping не разрешено иметь RequestParam ??

marhg 10.08.2018 14:53

Ага. ты прав. Мой ответ ниже.

Boris Zhguchev 10.08.2018 15:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
14
2 246
1

Ответы 1

Как в комментариях к SPR описано SPR-16874:

it does not support DELETE currently. It would be a trivial change to make. There is suggested a workaround:

@DeleteMapping(value = "/greeting")
public Greeting handle(@RequestBody MultiValueMap<String, String> params) {
    return new Greeting(counter.incrementAndGet(),
                        String.format(template, params));
}

Как видите, проблема был открыт в трекере весенней загрузки.

Спасибо! позвольте мне попробовать :)

marhg 10.08.2018 15:18

Другие вопросы по теме