2017-05-21 1 views
0

잠시 동안 Dropwizard 서비스에 swagger를 추가했는데 제대로 작동했습니다. 그러나 지금은 간단한 HTML 페이지를 추가하고이 내 코드 자신감과 404 응답Dropwizard 저지 세트 URL 패턴 깨기 Swagger 404?

와 API를 을 끊었다 /assets에서 콘텐츠를 제공 할 수있는 자원 경로를 구성하고자하는 오전

public class NumericodeApplication extends Application<NumericodeConfiguration> { 

    public static void main(final String[] args) throws Exception { 
     new NumericodeApplication().run(args); 
    } 

    @Override 
    public String getName() { 
     return "Numericode"; 
    } 

    @Override 
    public void initialize(final Bootstrap<NumericodeConfiguration> bootstrap) { 

     bootstrap.addBundle(new SwaggerBundle<NumericodeConfiguration>() { 
      @Override 
      protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(NumericodeConfiguration configuration) { 
       return configuration.swaggerBundleConfiguration; 
      } 
     }); 

     bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html")); //added this 
    } 

    @Override 
    public void run(final NumericodeConfiguration configuration, final Environment environment) { 

     environment.jersey().register(new Controller()); 
     environment.jersey().setUrlPattern("/swagger"); //tried this 
     environment.jersey().setUrlPattern("/api/*"); //added this 
    } 
} 

내가 시도 및 방법은이 경로에

여러 서블릿지도를 불평() 호출 두 setUrlPattern를 삭제하면/* : 자산 [매핑 : JAVAX_API : 널 (null), io.dropwizard.jersey.setup.JerseyServletContainer - 2e5b7fba 내가 번들 자신감이 확인을 다시 작동 자산을 삭제하면 [매핑 : 임베디드 널 (null) 그러나

?

내 인덱스 페이지와 swagger를 모두 Dropwizard/Jetty에서 작동 시키려면 어떻게해야합니까?

무슨 일이 일어나고 있는지 설명 할 수 있다면 보너스 포인트!

답변

1

응용 프로그램 또는 정적 자산은 루트 경로에서 제공 될 수 있지만 둘 다에서 제공 될 수는 없습니다. 후자는 Dropwizard를 사용하여 에 자바 스크립트 응용 프로그램을 사용할 때 유용합니다. 이 기능을 사용하려면 응용 프로그램을 하위 URL로 이동하십시오.

출처 :이 줄은 root 컨텍스트 경로에서 assets 자원 디렉토리에있는 자원을 마운트하려고 http://www.dropwizard.io/1.1.0/docs/manual/core.html#serving-assets

bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html"));

. 아마도 Jersey 응용 프로그램이 이미 거기에 마운트되어있을 것입니다.

관련 문제