저는 편안한 webservices를 처음 접하고 자바 편안한 API 튜토리얼을 접했습니다. DELETE 요청을 제외한 모든 HTTP 요청이 정상적으로 작동합니다. 이 링크에서 설명한 것과 동일한 문제가 있습니다. 가 → GET, OPTIONS 위치하고, 나 사양에 따라, 정확한 구문 및 URL 형식 다음하고우체부에서 405 번을 삭제하십시오.
(영상 링크 이하이다()에 붙여 허용 또한, 소정의 헤더 값 배달부에서 보이고 REST - HTTP Status 405 - Method Not Allowed
이미지) 삭제가 작동하지 않습니다.
내가 놓친 경우 알려 주시기 바랍니다.
편집 : 소스 코드 : 삭제 다른 요청을 제외하고
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.koushik.javabrains.messenger.model.Message;
import org.koushik.javabrains.messenger.service.MessageService;
@Path("/messages")
public class MessageResource {
MessageService messageService = new MessageService();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Message> getMessages(){
System.out.println("Hello There");
List<Message> returnedList = messageService.getAllMessages();
System.out.println(returnedList);
return returnedList;
}
@GET
@Path("/{messageId}")
@Produces(MediaType.APPLICATION_JSON)
public Message getMessage(@PathParam("messageId") long messageId){
System.out.println("Message returned");
return messageService.getMessage(messageId);
}
@POST
@Produces(MediaType.APPLICATION_JSON)
public Message addMessage(Message message){
return messageService.addMessage(message);
}
@PUT
@Path("/{messageId}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Message updateMessage(@PathParam("messageId") long id , Message message){
message.setId(id);
return messageService.updateMessage(message);
}
@DELETE
@Path("/messageId")
@Produces(MediaType.APPLICATION_JSON)
public void deleteMessage(@PathParam("messageId") long id){
System.out.println("Hello There");
messageService.removeMessage(id);
}
}
package org.koushik.javabrains.messenger.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.koushik.javabrains.messenger.database.DatabaseClass;
import org.koushik.javabrains.messenger.model.Message;
public class MessageService {
private Map<Long , Message> messages = DatabaseClass.getMessages();
public MessageService(){
messages.put(1L, new Message(1, "Hello World" , "koushik"));
messages.put(2L, new Message(2, "Hello Jersey" , "Koushik"));
}
public List<Message> getAllMessages(){
return new ArrayList<Message>(messages.values());
}
public Message getMessage(long id){
Message m = messages.get(id);
System.out.println("Value of message "+m);
return m;
}
public Message addMessage(Message message){
message.setId(messages.size()+1);
messages.put(message.getId(), message);
return message;
}
public Message updateMessage(Message message){
if(message.getId() <=0){
return null;
}
messages.put(message.getId(), message);
return message;
}
public Message removeMessage(long id){
return messages.remove(id);
}
}
package org.koushik.javabrains.messenger.database;
import java.util.HashMap;
import java.util.Map;
import org.koushik.javabrains.messenger.model.Message;
import org.koushik.javabrains.messenger.model.Profile;
public class DatabaseClass {
private static Map<Long , Message> messages = new HashMap();
private static Map<String , Profile> profiles = new HashMap();
public static Map<Long , Message> getMessages() {
return messages;
}
public static Map<String, Profile> getProfiles() {
return profiles;
}
}
잘 노력하고 있습니다. DELETE 서버가 HTTP -405 메소드를 리턴 중입니다. 허용되지 않습니다. 헤더 값 우체부에서 다음 요청을 삭제 보내는에서도
는 우편 배달에 입력 된 URL 매개 변수가없는 있는지, 또한 확인
감사
일반적으로 사람들이 서버에 액세스 할 수있는 경우를 요청할 것, 또는 URL을 다시 확인하고, 그 아마도 서버가 DELETE 작업을 허용하지 않습니다. 하지만 Javabrains의 튜토리얼을 따라 가고 있다고 확신합니다. URL을 잘 알고 있습니다. 오류가 서버 코드의 어딘가에있는 것 같습니다. – Ray
안녕하세요 레이, 제가 서버 코드를 첨부 해주세요. 나는 삭제 이외의 다른 작업을 수행 할 수있다. – Gaurabh
게시물에서 언급했듯이 ... * application/json *이 아닌 * text/html * –