Я могу сделать PUT, но не POST с Spring Data Rest? - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть две простые сущности, подобные этой:

public class Agent extends BasedEntity {

    private String firstname;

    private String lastname;

    @ManyToOne
    @JoinColumn(name="agency_id", nullable=true)
    Agency agency;
}

и

public class Agency extends BasedEntity {

    private String name;

    private String address;

    @OneToMany(mappedBy="agency")
    private Set<Agent> agents;
}

@RepositoryRestResource
public interface AgencyRespository extends JpaRepository<Agency, Long> {
}


@RepositoryRestResource
public interface AgentsRespository extends JpaRepository<Agent, Long> {
}

Когда я делаю PUT с

https://localhost:8080/api/v1/agents/64/agency
body:https://localhost:8080/api/v1/agencies/50

, он проходит, но еслиЯ делаю POST

https://localhost:8080/api/v1/agents/64/agency
body:https://localhost:8080/api/v1/agencies/50

Я получаю

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported

1 Ответ

0 голосов
/ 03 ноября 2019

Вы используете старую версию Spring Data Rest. POST допускается с 2.3.x.

Последняя версия - 3.2.x. Вы должны определенно перейти на более новую версию ...

----------- Edit

Я только что понял, что исключение НЕ является внутренним HttpRequestMethodNotSupportedExceptionиз класса RepositoryPropertyReferenceController, но по умолчанию org.springframework.web.HttpRequestMethodNotSupportedException.

Это исключение никогда не вызывается напрямую из пакета SRD.

Возможно, у вас есть фильтр, который отклоняет запрос POST или какой-либо другойвид настроек безопасности.

...