I tried to create a simple servlet, but I got some error when the pod goes up:
Caused by: org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.\n[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response be.servlets.testServlet.createEnv(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,java.lang.String) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[application/json], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class be.servlets.testServlet, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@747a8258]}, definitionMethod=public javax.ws.rs.core.Response be.servlets.testServlet.createEnv(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,java.lang.String), parameters=[Parameter [type=class java.lang.String, source=name, defaultValue=null], Parameter [type=class java.lang.String, source=external_id, defaultValue=null], Parameter [type=interface javax.servlet.http.HttpServletRequest, source=null, defaultValue=null], Parameter [type=class java.lang.String, source=USER_ID, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']\n\tat
This is my servlet:
package be.servlets;import com.jcabi.aspects.Loggable;import fj.data.Either;import io.swagger.annotations.*;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Controller;import java.util.List;import javax.ws.rs.*;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.Response;@Loggable(prepend = true, value = Loggable.DEBUG, trim = false)@Path("/v1")@Api(value = "test servlet")@Controller@RequiredArgsConstructorpublic class testServlet { @POST @Path("/test") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Create Consumer Env", httpMethod = "POST", notes = "Return generated id") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 201, message = "Created"), @ApiResponse(code = 400, message = "Bad request"), @ApiResponse(code = 401, message = "Unauthorized"), @ApiResponse(code = 403, message = "Forbidden"), @ApiResponse(code = 404, message = "Not Found"), @ApiResponse(code = 500, message = "Internal Server Error"), @ApiResponse(code = 409, message = "conflict") }) public Response createEnv(@ApiParam(value = "name", required = true) String name, @ApiParam(value = "external_id", required = true) String external_id) { return null; } @PUT @Path("/test/{id}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Update name field", httpMethod = "PUT", notes = "Update name of given id") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Bad request"), @ApiResponse(code = 401, message = "Unauthorized"), @ApiResponse(code = 403, message = "Forbidden"), @ApiResponse(code = 404, message = "Not Found"), @ApiResponse(code = 500, message = "Internal Server Error"), @ApiResponse(code = 409, message = "conflict") }) public Response updateName(@PathParam("id") final String id, @ApiParam(value = "name", required = true) String name) { return null; } @GET @Path("/test/{id}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Retrieve Consumer Env", httpMethod = "GET", notes = "Retrieves a consumer environment by its id", response = DistributionStatusListResponse.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Bad request"), @ApiResponse(code = 401, message = "Unauthorized"), @ApiResponse(code = 403, message = "Forbidden"), @ApiResponse(code = 404, message = "Not Found"), @ApiResponse(code = 500, message = "Internal Server Error") }) public Response getEnvById(@PathParam("id") final String id) { return null; } @DELETE @Path("/test/{id}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "delete ENV", httpMethod = "DELETE", notes = "Returns HTTP response code") @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Bad request"), @ApiResponse(code = 401, message = "Unauthorized"), @ApiResponse(code = 403, message = "Forbidden"), @ApiResponse(code = 404, message = "Not Found"), @ApiResponse(code = 500, message = "Internal Server Error") }) public Response deleteEnv(@PathParam("id") final String id) { return null; }}
I attempted to address the issue by renaming the method to createEnvironments, but encountered the same error. Additionally, I augmented the method signature by adding more parameters using @HeaderParam, yet the error persisted.
Thank you :)