Ошибка Java Джерси com.sun.jersey.spi.inject.Errors $ ErrorMessagesException at com.sun.jersey.spi.inject.Errors.processErrorMessages (Ошибки. java: 170) - PullRequest
0 голосов
/ 14 января 2020

У меня есть два метода в классе 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 publi c class ЖалобаDTO {

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)

Что не так с реализацией ниже. У меня также реализованы другие конечные точки, и те же работают нормально.

Ответы [ 2 ]

1 голос
/ 14 января 2020

Аннотация @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();
    }
}
0 голосов
/ 14 января 2020

Не могли бы вы проверить, присутствуют ли следующие зависимости в пути сборки

jersey-multipart.jar
mimepull.jar

Если не попытаться добавить их в путь к классу.

Другая возможная причина может быть, та же аннотация @Path - @Path ("/ endPoint") с uri в качестве "/ endpoint" может быть определен дважды.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...