Jersey, Tomcat: The requested resource is not available in InjelliJ

I am new to Jersey and am trying to convert a project from Spring MVC to Jersey. However, with my current build, all requests return an error resource not available. Any help would be greatly appreciated.

My dependencies:

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    compile("org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE")
    compile("org.springframework.boot:spring-boot-starter-jersey")
    runtime('org.hsqldb:hsqldb')
    compileOnly("org.springframework.boot:spring-boot-starter-tomcat")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

My jersey config

    @Configuration
public class JersyConfig extends ResourceConfig {

    public JersyConfig() {
        registerEndpoints();
        configureSwagger();
    }

    private void configureSwagger() {
        register(ApiListingResource.class);
        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.0");
        beanConfig.setSchemes(new String[]{"http"});
        beanConfig.setHost("localhost:8090");
        beanConfig.setBasePath("/");
        beanConfig.setResourcePackage(OwnerController.class.getPackage().getName());
        beanConfig.setPrettyPrint(true);
        beanConfig.setScan(true);
    }

    private void registerEndpoints() {
        register(OwnerController.class);
    }

}


    @Api(value = "Owner controller", tags = {"Owner resource"})
public class OwnerController {

    private final ClinicService clinicService;

    @Autowired
    public OwnerController(ClinicService clinicService) {
        this.clinicService = clinicService;
    }

    @GET
    @Path("/{ownerId}")
    @Produces(MediaType.APPLICATION_JSON)
    @ApiOperation(value = "get owner by id", response = Owner.class)
    public Response getOwner(
            @ApiParam(name = "owner id", value = "owner id that must be fetched") @PathParam("ownerId") int id ) {
        Owner owner = clinicService.findOwnerById(id);
        return Response.status(200).entity(owner).build();
    }

    @GET
    @Path("/owners")
    @Produces(MediaType.APPLICATION_JSON)
    @ApiOperation(value = "get all owners", response = Owner.class, responseContainer = "List")
    public Response getOwners() {
        List<Owner> owner = (List<Owner>) clinicService.findAllOwners();
        return Response.status(200).entity(owner).build();
    }

}
+4
source share
1 answer

Register your package that contains the jersey resources using the packages () method in the JerseryConfig () constructor -

public JersyConfig() {
    packages("PACKAGE_CONTAINING_JERSEY_RESOURCES");
    registerEndpoints();
    configureSwagger();
}
+1
source

Source: https://habr.com/ru/post/1661579/


All Articles