[英]Jersey: com.sun.jersey.spi.inject.Errors$ErrorMessagesException
[英]Error Java Jersey com.sun.jersey.spi.inject.Errors$ErrorMessagesException at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
我在java類中有兩個方法,它們被定義為包含以下方法的球衣資源
@Path("base_endpoint")
public class ComplaintSupportResource{
@Post
@Path("/endPoint")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response complaintRegister(ComplaintDTO caliamtDTO) {
ComplaintResponseDTO response =complaintService.registerComplaint(caliamtDTO);
return Response.ok(response).build();
}
}
這是 dto 類:
@XmlRootElement 公共類 ComplaintDTO {
private String memberName;
private String email;
private String mobileNO;
private String complaintId;
private String claimNo;
private String complaintDetails;
private String policyNo;
public String getComplaintId() {
return complaintId;
}
public void setComplaintId(String complaintId) {
this.complaintId = complaintId;
}
public String getClaimNo() {
return claimNo;
}
public void setClaimNo(String claimNo) {
this.claimNo = claimNo;
}
public String getComplaintDetails() {
return complaintDetails;
}
public void setComplaintDetails(String complaintDetails) {
this.complaintDetails = complaintDetails;
}
public String getPolicyNo() {
return policyNo;
}
public void setPolicyNo(String policyNo) {
this.policyNo = policyNo;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMobileNO() {
return mobileNO;
}
public void setMobileNO(String mobileNO) {
this.mobileNO = mobileNO;
}
}
我收到以下異常。 我不確定我做錯了什么。
SEVERE: A sub-resource locator, public javax.ws.rs.core.Response com.xxx.xxx.xxxComplaintSupportResource.complaintRegister(com.xxx.xxx.xxx.ComplaintDTO), can not have an entity parameter. Try to move the parameter to the corresponding resource method.
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.xxx.xxx.xxxComplaintSupportResource.complaintRegister(com.xxx.xxx.xxx.ComplaintDTO) at parameter at index 0
org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1142)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1089)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:773)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
下面的實現有什么問題。 我還有其他端點也實現了我同樣工作正常。
@Post 注釋不正確可能是您從其他一些庫中導入它們 Jerysey @POST 注釋不同並確保您正在導入 javax.ws.rs.POST。 將@Post 更改為@POST,例如:
@Path("base_endpoint")
public class ComplaintSupportResource{
**@POST**
@Path("/endPoint")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response complaintRegister(ComplaintDTO caliamtDTO) {
ComplaintResponseDTO response =complaintService.registerComplaint(caliamtDTO);
return Response.ok(response).build();
}
}
您能否檢查構建路徑中是否存在以下依賴項
jersey-multipart.jar
mimepull.jar
如果沒有,請嘗試將它們添加到類路徑。
其他可能的原因可能是,相同的 @Path 注釋 - @Path("/endPoint") with uri as "/endpoint" 可能被定義兩次。
希望這可以幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.