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

如何为Spring data JPA REST启用POST/PUT方法?(“错误405:不允许使用方法”)

南宫凡
2023-03-14
</html>curl (6) Could not resolve host: 1
curl: (6) Could not resolve host: }'
HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
Allow: HEAD, GET
Content-Type: application/hal+json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 26 Apr 2016 02:20:04 GMT

{"timestamp":1461637204513,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/musics/"}
curl -g -i -X POST -H "Content-Type:application/json" -d '{  "music" : "1"  }' http://localhost:8080/musics/
package com.lamssaweb.entities;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Date;
import java.util.Collection;

@Entity
@Table(name = "musics", schema = "", catalog = "scout")
public class MusicsEntity implements Serializable{
    private int musicid;
    private String music;
    private Date addedAt;
    private String description;
    private Collection<PostsEntity> postsesByMusicid;

    @Id
    @Column(name = "MUSICID", nullable = false, insertable = true, updatable = true)
    public int getMusicid() {
        return musicid;
    }

    public void setMusicid(int musicid) {
        this.musicid = musicid;
    }

    @Basic
    @Column(name = "MUSIC", nullable = true, insertable = true, updatable = true, length = 2000)
    public String getMusic() {
        return music;
    }

    public void setMusic(String music) {
        this.music = music;
    }

    @Basic
    @Column(name = "ADDED_AT", nullable = true, insertable = true, updatable = true)
    public Date getAddedAt() {
        return addedAt;
    }

    public void setAddedAt(Date addedAt) {
        this.addedAt = addedAt;
    }

    @Basic
    @Column(name = "DESCRIPTION", nullable = true, insertable = true, updatable = true, length = 2000)
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        MusicsEntity that = (MusicsEntity) o;

        if (musicid != that.musicid) return false;
        if (addedAt != null ? !addedAt.equals(that.addedAt) : that.addedAt != null) return false;
        if (description != null ? !description.equals(that.description) : that.description != null) return false;
        if (music != null ? !music.equals(that.music) : that.music != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = musicid;
        result = 31 * result + (music != null ? music.hashCode() : 0);
        result = 31 * result + (addedAt != null ? addedAt.hashCode() : 0);
        result = 31 * result + (description != null ? description.hashCode() : 0);
        return result;
    }

//    @OneToMany(mappedBy = "musicsByMusicid")
//    @JsonManagedReference
//    public Collection<PostsEntity> getPostsesByMusicid() {
//        return postsesByMusicid;
//    }
//
//    public void setPostsesByMusicid(Collection<PostsEntity> postsesByMusicid) {
//        this.postsesByMusicid = postsesByMusicid;
//    }
}

主要是:

@SpringBootApplication
public class SpringBackendScoutApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBackendScoutApplication.class, args);
    }
}

共有1个答案

胡星汉
2023-03-14

响应标头以:

</html>curl (6) Could not resolve host: 1
curl: (6) Could not resolve host: }'

这和你的另一篇文章中的问题是一样的:你在Windows上,所以不要使用单引号,使用双引号,并转义内部的双引号:

curl -g -i -X POST -H "Content-Type:application/json" -d "{ \"music\" : \"1\" }" http://localhost:8080/musics/

同样,这里不需要-g;)

 类似资料:
  • 问题内容: 我刚刚开始学习Flask,并且我正在尝试创建一种允许POST方法的表单。 这是我的方法: 而我的: 加载表单(在收到GET时将其呈现)可以正常工作。但是,当我单击“ 提交”按钮时,出现一个。 为什么不显示“ Hello”? 问题答案: 除非存在输入错误,否则你的表单将提交给路由方法,除非你输入错误,否则应调整表单的属性以指向视图

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)

  • 我有一个restcontroller和post方法,带有以下url和json请求。http://server/member/sc/v1/limited-liability/medicare 使用post方法和json请求在本地触发请求时,获得正确的响应。但在docker中以spring boot应用程序的形式运行会将异常作为不允许的方法抛出。最初,我将这个docker服务部署为put方法。现在我转

  • 我有一个非常简单的Spring引导应用程序,它由以下代码保护: 这个想法是为了保护“admin”部分。它公开了一个RESTAPI。问题是所有的帖子都被退回了 405方法不允许 如果我从应用程序中删除安全启动器,它就会工作。这让我相信安全配置是问题所在。但我不知道怎么做。

  • 我有以下发帖方法, 我正在使用fiddler发布以下请求, 注意:还没有为spring配置安全性。

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。