2017-03-03 1 views
1

나는, 하나의 제품을 얻기 위해 기존 자원에서 새로운 방법을 추가했습니다 내 dropwizard 것을 앱은 아래의 오류를보고하고 던지는되지 후 : -Dropwizard + 저지 : 원인 : java.lang.IllegalStateException : 요청 범위 안에 있지 않습니다. 자원에 대한

Caused by: java.lang.IllegalStateException: Not inside a request scope. 
    at jersey.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:173) 
    at org.glassfish.jersey.process.internal.RequestScope.current(RequestScope.java:233) 
    at org.glassfish.jersey.process.internal.RequestScope.findOrCreate(RequestScope.java:158) 
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2020) 
    ... 63 more 

그리고

WARN [2017-03-03 06:12:12,334] /: unavailable 
! java.lang.IllegalStateException: Not inside a request scope. 
! at jersey.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:173) 
! at org.glassfish.jersey.process.internal.RequestScope.current(RequestScope.java:233) 
! at org.glassfish.jersey.process.internal.RequestScope.findOrCreate(RequestScope.java:158) 
! at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2020) 
! ... 63 common frames omitted 
! Causing: org.glassfish.hk2.api.MultiException: A MultiException has 1 exceptions. They are: 
! 1. java.lang.IllegalStateException: Not inside a request scope. 
! 
! at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2026) 
! at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:766) 
! at org.jvnet.hk2.internal.ServiceLocatorImpl.getUnqualifiedService(ServiceLocatorImpl.java:773) 
! at org.jvnet.hk2.internal.IterableProviderImpl.get(IterableProviderImpl.java:111) 
! at org.glassfish.jersey.server.internal.inject.AbstractContainerRequestValueFactory.getContainerRequest(AbstractContainerRequestValueFactory.java:71) 
! at org.glassfish.jersey.server.internal.inject.PathParamValueFactoryProvider$PathParamValueFactory.provide(PathParamValueFactoryProvider.java:93) 
! at org.glassfish.jersey.server.internal.inject.ParamInjectionResolver.resolve(ParamInjectionResolver.java:134) 
! at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:961) 
! at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:980) 
! at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:970) 
! at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:617) 
! at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:184) 
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:350) 
! at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:347) 
! 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:347) 
! at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392) 
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177) 
! at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369) 
! at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
! at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640) 
! at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419) 
! at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875) 
! at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:349) 
! at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772) 
! at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262) 
! 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:106) 
! 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:106) 
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
! at org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:231) 
! 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:106) 
! 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:106) 
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
! at org.eclipse.jetty.server.handler.StatisticsHandler.doStart(StatisticsHandler.java:252) 
! 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:411) 
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106) 
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61) 
! at org.eclipse.jetty.server.Server.doStart(Server.java:378) 
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53) 
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:44) 
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:85) 
! at io.dropwizard.cli.Cli.run(Cli.java:75) 

```다음

는 예외를 던지는 사용하여 내 get 메소드의 코드입니다 : -

@GET 
    @PathParam("{id}") 
    @Timed 
    public Response get(@PathParam("id") String id){ 
     Response.ResponseBuilder response = null; 
     BaseResponse productResponse = new BaseResponse(); 
     try { 
      Product product = productService.get(id); 
      if(product != null) 
      { 
       productResponse.setOutput(product); 
       response.status(200).entity(productResponse); 

      } 
     }catch (EntityNotPresentException e){ 
      AppError appError = new AppError(); 
      appError.setCode(50001); 
      appError.setMessage(e.getMessage()); 
      productResponse.setError(appError); 
      response.status(500).entity(productResponse); 
     } 

     return response.build(); 
    } 

답변

0

방금 ​​스텁 코드로 IntelliJ에 코드를 복사하여 실행했으며 동일한 오류가 발생했습니다. 몇 시간 동안 디버깅을 한 후에 get 메서드에 @Path annotation 대신 @PathParam 주석을 사용하고 있음을 알았습니다. 내가 그것을 @Path annotation으로 바꿨을 때. 그것은 나를 위해 일했다.

문제가 해결되는지 알려주세요.

+0

코드에 오타가 있음을 지적 해 주셔서 감사합니다. –

관련 문제