Jax-RS를 처음 사용합니다. 저지를 사용하여 간단한 GET 메서드를 구현하려고합니다. 나는 컬렉션 리소스에 대한 정확한 출력을 얻고 있습니다. "ERROR 400 Bad Request" 인스턴스 리소스가 있습니다. 이 시점에서 에 머물러 있습니다. 모든 것이 정확 해 보이지만, 나는 알아낼 수없는 것을 놓치고있는 입니다. 나는 지난 10 일 동안 그것을 시도했습니다. 어떤 도움을받을 수 있습니다. 아래 코드 내 코드를 찾으십시오. "예기치 않은 'T'"응답과 ARC가 던지고있는 POSTMAN 나머지 클라이언트를 사용 중입니다. "요청 엔터티 은 비워 둘 수 없습니다." 둘 다 오류 400 잘못된 요청입니다.요청 엔터티를 비워 둘 수 없습니다.
package com.manish.jax_rs.Messanger.Dao; import java.util.HashMap; import java.util.Map; import com.manish.jax_rs.Messanger.model.Message; public class DaoClass { private static Map<Integer,Message> messages = new HashMap<Integer,Message>(); public static Map<Integer, Message> getMessages() { return messages; } }
이이 중에서 MessageService입니다 :
package com.manish.jax_rs.Messanger.resources; import java.util.List; import javax.websocket.server.PathParam; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import com.manish.jax_rs.Messanger.model.Message; import com.manish.jax_rs.Messanger.service.MessageService; @Path("/messages") public class MessageResource { MessageService messageService = new MessageService(); @GET @Produces(MediaType.APPLICATION_JSON) public List<Message> getMessages(){ return messageService.getAllMessages(); } @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public Message getMessage(@PathParam("id") int id){ return messageService.getMessage(id); } }
이 DaoClass.java입니다 : 이것은 내 MessageResource.java입니다
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>MessangerWithoutMaven</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.manish.jax_rs.Messanger</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/webapi/*</url-pattern> </servlet-mapping> </web-app>
:
이
내 web.xml 파일입니다 .java :package com.manish.jax_rs.Messanger.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.manish.jax_rs.Messanger.Dao.DaoClass;
import com.manish.jax_rs.Messanger.model.Message;
public class MessageService {
private Map<Integer,Message> messages= DaoClass.getMessages();
Message m1= new Message(1,"Hello John","John");
Message m2= new Message(2,"Hello Mathews","Mathews");
Message m3= new Message(3,"Hello Albert","Albert");
public MessageService(){
messages.put(1,m1);
messages.put(2,m2);
messages.put(3, m3);
}
public List<Message> getAllMessages(){
return new ArrayList<Message>(messages.values());
}
public Message getMessage(int id){
return messages.get(id);
}
}
이 16,은 Message.java입니다 :
package com.manish.jax_rs.Messanger.model;
import java.util.Date;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Message {
private int id;
private String message;
//private Date created;
private String author;
public Message() {
}
public Message(int id, String message, String author) {
this.id = id;
this.message = message;
this.author = author;
//this.created = new Date();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
[List of jars][1]
[correct output for collection resource "messages" in Postman rest client][2]
[Incorrect output for instance resource /messages/1][3]enter code here
[1]: https://i.stack.imgur.com/sWfMl.jpg
[2]: https://i.stack.imgur.com/y5Nnf.jpg
[3]: https://i.stack.imgur.com/8CwId.jpg
왜이 변경으로 문제가 해결 될 수 있는지 자세히 설명해 주시겠습니까? – Adalee
답을 자세히 기재해야합니다. 답변을 업데이트하십시오. – blackHawk
정말 문제가 무엇인지 찾을 수 없었습니다. STS에 동일한 프로젝트를 가져 와서 매력적으로 작용했습니다. –