2

I am using the Dropwizard api. It worked fine when i used 0.7.2 But now i have changed it to 0.8.2

I got all the weirdest crashes you could find. But i managed to solve most of them. But i am stuck with not being able to start the server when i added a parameter that is a POJO

  @POST
  @Path("remove")
  @Produces(MediaType.TEXT_HTML)
  @Consumes(MediaType.APPLICATION_JSON)
  public Response removeUser(@Auth User user, User removedUser) {
    if(user == null || user.getSuperAdmin() != 1){
      return Response.status(401).build();
    }

    userDAO.delete(removedUser.getId());

    return Response.ok().build();
  }

If you look at the code. When i add the User Variable removedUser. I would not be able to start the server. But when i remove it. It works fine. But i need the removedUserin the project

I have the same problem in different areas of the project. So anything that could help me solve this problem is accepted

Exception:

 javax.ws.rs.core.Response}, nameBindings=[]}']
! at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:554) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:183) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:349) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:346) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:346) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:339) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362) ~[support-server-0.0.0001.jar:0.0.0001]
! at javax.servlet.GenericServlet.init(GenericServlet.java:244) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612) ~[support-server-0.0.0001.jar:0.0.0001]
! ... 36 common frames omitted
! Causing: javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-159e366@f02ec575==org.glassfish.jersey.servlet.ServletContainer,1,false
! at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at com.codahale.metrics.jetty9.InstrumentedHandler.doStart(InstrumentedHandler.java:103) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.StatisticsHandler.doStart(StatisticsHandler.java:232) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.Server.start(Server.java:387) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.Server.doStart(Server.java:354) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.Application.run(Application.java:73) [support-server-0.0.0001.jar:0.0.0001]
! at com.car.SupportServerApplication.main(SupportServerApplication.java:51) [support-server-0.0.0001.jar:0.0.0001]
ERROR [2015-09-01 10:36:33,250] io.dropwizard.cli.ServerCommand: Unable to start server, shutting down
! org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
! [[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[text/html], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.car.resource.AdminResource, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@74294c1a]}, definitionMethod=public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String), parameters=[Parameter [type=class com.car.core.User, source=null, defaultValue=null], Parameter [type=class java.lang.String, source=null, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']
! at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:554) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:183) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:349) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:346) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:346) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:339) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362) ~[support-server-0.0.0001.jar:0.0.0001]
! at javax.servlet.GenericServlet.init(GenericServlet.java:244) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612) ~[support-server-0.0.0001.jar:0.0.0001]
! ... 36 common frames omitted
! Causing: javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-159e366@f02ec575==org.glassfish.jersey.servlet.ServletContainer,1,false
! at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at com.codahale.metrics.jetty9.InstrumentedHandler.doStart(InstrumentedHandler.java:103) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.StatisticsHandler.doStart(StatisticsHandler.java:232) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.Server.start(Server.java:387) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.server.Server.doStart(Server.java:354) ~[support-server-0.0.0001.jar:0.0.0001]
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43) ~[support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.cli.Cli.run(Cli.java:70) [support-server-0.0.0001.jar:0.0.0001]
! at io.dropwizard.Application.run(Application.java:73) [support-server-0.0.0001.jar:0.0.0001]
! at com.car.SupportServerApplication.main(SupportServerApplication.java:51) [support-server-0.0.0001.jar:0.0.0001]
INFO  [2015-09-01 10:36:33,259] org.eclipse.jetty.server.ServerConnector: Stopped application@3b582111{HTTP/1.1}{0.0.0.0:8095}
INFO  [2015-09-01 10:36:33,269] org.eclipse.jetty.server.ServerConnector: Stopped admin@2899a8db{HTTP/1.1}{0.0.0.0:8096}
Exception in thread "main" javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-159e366@f02ec575==org.glassfish.jersey.servlet.ServletContainer,1,false
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:633)
    at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at com.codahale.metrics.jetty9.InstrumentedHandler.doStart(InstrumentedHandler.java:103)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.handler.StatisticsHandler.doStart(StatisticsHandler.java:232)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.server.Server.start(Server.java:387)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.Server.doStart(Server.java:354)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:43)
    at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43)
    at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76)
    at io.dropwizard.cli.Cli.run(Cli.java:70)
    at io.dropwizard.Application.run(Application.java:73)
    at com.car.SupportServerApplication.main(SupportServerApplication.java:51)
Caused by: org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[text/html], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.car.resource.AdminResource, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@74294c1a]}, definitionMethod=public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String), parameters=[Parameter [type=class com.car.core.User, source=null, defaultValue=null], Parameter [type=class java.lang.String, source=null, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:554)
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:183)
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:349)
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:346)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:346)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:339)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612)
    ... 36 more

UPDATE

Implementation of authentication service:

LdapConfiguration ldapConfiguration = configuration.getLdapConfiguration();
Authenticator<BasicCredentials, BasicCredentials> ldapAuthenticator = new CachingAuthenticator<>(
        environment.metrics(),
        new ResourceAuthenticator(new LdapAuthenticator(ldapConfiguration)),
        ldapConfiguration.getCachePolicy());
ldapAuthenticator.authenticate(new BasicCredentials("proxyuser", "test123"));

environment.jersey().register(AuthFactory.binder(new BasicAuthFactory<>(ldapAuthenticator, "realm", BasicCredentials.class)));
Paul Samsotha
  • 205,037
  • 37
  • 486
  • 720
Jemil Riahi
  • 1,360
  • 5
  • 18
  • 38

1 Answers1

0
Caused by: org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[text/html], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.car.resource.AdminResource, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@74294c1a]}, definitionMethod=public javax.ws.rs.core.Response com.car.resource.AdminResource.removeUser(com.car.core.User,java.lang.String), parameters=[Parameter [type=class com.car.core.User, source=null, defaultValue=null], Parameter [type=class java.lang.String, source=null, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']

Most likely you haven't configured the authentication mechanism. For example

env.jersey().register(AuthFactory.binder(
        new BasicAuthFactory<SimplePrincipal>(
                authenticator,
                "Example Realm", 
                SimplePrincipal.class)));

Here's the reason for the error. On startup Jersey does what it calls its model validation to validate that all the resource models are "correct". This is mainly to avoid any problems at runtime. The error happens when the removeUser method is being validated.

Jersey sees two parameters of unknown (or non-annotated) type objects, which is not a problem if it's just one, as there is usually a entity body object. For others they are recognized by annotations. For custom annotations, like @Auth, a custom ValueFactoryProvider/InjectionResolver needs to be configured. Dropwizard's implementations for @Auth injection can be found here in the AuthFactoryProvider class. The AuthFactory.binder (shown above) is how the provider is registered.

See Also:

Community
  • 1
  • 1
Paul Samsotha
  • 205,037
  • 37
  • 486
  • 720
  • But that is something i have done. Maybe im going it wrong. But il update my post to show how i do it – Jemil Riahi Sep 01 '15 at 13:17
  • If you are going to try and inject `@Auth User` then `User` should be the actual principal type. `User.class` should the last argument to `AuthFactory.binder`. Also it should be the second generic parameter to your `Authenticator` declaration. Se the links I provided. – Paul Samsotha Sep 01 '15 at 13:30
  • You might also want to parameterize `BasicAuthFactory` – Paul Samsotha Sep 01 '15 at 13:32
  • Basically whatever your principal type is, that is the type you should inject. If `BasicCrendentials` really _is_ the principal type, then that's what you need to inject. If it is not, then you need to fix your configuration and/or authenticator. – Paul Samsotha Sep 01 '15 at 13:35