当前位置: 首页 > 知识库问答 >
问题:

@无法识别删除映射

叶桐
2023-03-14

我是新来的spring boot,我的问题很简单,但我找不到问题出在哪里。

我有一个基本的@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";
   }

    }

我正在用邮递员测试,获取请求正在工作,但删除请求不起作用。即使当我调试Spring启动应用程序时。GetMap被调用,而删除没有“反应” /called

也许信息还不够,但我甚至测试了@DeleteMapping(“/test2”)没有做任何事情,我的意思是,我没有得到任何回应,而在《邮递员》中它保持“加载…”

有什么建议吗?

我的完整POM

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

<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基)具有

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

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 } );
        }

    }

共有1个答案

曾鸿振
2023-03-14

如SPR-16874所述的SPR评论:

目前不支持删除。这将是一个微不足道的改变。有人建议采取一种变通办法:

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

正如你所看到的,这个问题已经在spring boot tracker中打开了。

 类似资料:
  • 问题内容: 设置新的构建机器(CentOS 7,Docker CE 17.12.0-ce)时,我做了一个简单的测试: 效果很好,但是现在我无法删除Ubuntu映像。 任何容器都没有使用它(总之那不是错误): 我什至尝试了nuke-from-orbit方法: 并重新启动docker守护进程: 是什么赋予了?ubuntu映像是否存在并不重要,我只是不明白为什么我无法清理它。 更新资料 我尝试再次拉出图

  • 在启动使用与MySQL的数据库连接的Dropwizard应用程序时,我收到以下错误: 在Dropwizard配置文件的末尾,我有以下内容: 在我的配置类中,我有以下内容: 其他几个复杂的配置对象正在正确加载(这是一个相当大的配置文件),但这个没有。知道为什么我收到这个错误吗? 编辑这个问题类似于这个问题:读取YAML文件时出现无法识别的属性异常。然而,那个解决方案对我不起作用。

  • 我有以下序列

  • 我不确定这是否是一个与我没有这台计算机的管理权限有关的问题。任何帮助,以便我可以进一步排除故障,将非常感谢! 谢谢

  • 我正在使用IntelliJ IDEA,并且Spring的所有插件都被激活了,但是当我加载我的Maven项目时,我遇到了以下错误: Spring配置检查 找到未映射的Spring配置文件。 请为模块配置/设置Spring刻面 有什么想法阻止它自动配置?

  • 问题内容: 我使用,当我得到 我删除了构建路径,然后又做了 ,仍然是同样的错误。 问题答案: 该代码不是Java SE的一部分,因此这些类将不在JRE中。您需要找到并下载包含这些类的JAR文件,然后将其添加到Eclipse构建路径中。 (可以在此处下载JAR的一个地方,但是如果此链接中断,可以轻松进行自己的搜索。请转到Maven Central或findjar。)