There might be a clue in the response headers - it mentions nginx.

-
Stephen

> On 24 Jun 2019, at 10:58, Kuttaiah Robin <kutta...@gmail.com> wrote:
> 
> Hello,
> 
> I have a usecase for importing zip file into our microservice. Hence below is 
> the code I have.
> 
> REST RESOURCE
> ---------------
> @Path("/models")
> @Provider
> @Produces( {"application/json"} )
> @OpenAPIDefinition(
>     info = @Info
>     (
>         title = "insightmanager",
>         version = "1.0.0",
>         description = "Insight Manager"
>         ),
>     servers = {
>         @Server(
>             url = "{protocol}//{host}:{port}/{basePath}",
>             variables = {
>                 @ServerVariable(name = "protocol",defaultValue = "http:"),
>                 @ServerVariable(name = "host", defaultValue = "localhost"),
>                 @ServerVariable(name = "port", defaultValue = "8765"),
>                 @ServerVariable(name = 
> "basePath",defaultValue="insight-server/api/1.0/")
>             })} 
>     )
> public class ModelResource {
> 
> 
>   @POST
>   @Path(value = "{modelId}/version}/importmodel")
>   @Consumes(MediaType.MULTIPART_FORM_DATA)
>   @Operation(summary = "import model ",
>   responses = {
>       @ApiResponse(responseCode = "200" ,description = "get t2p info",
>           content = @Content(mediaType = "application/json",
>           schema = @Schema(implementation = T2PInfo.class))),
>       @ApiResponse(responseCode = "500", description = "import failed", 
>       content = 
> @Content(mediaType="application/json",schema=@Schema(implementation = 
> oracle.insight.server.rest.model.Status.class)))})           
>   public Response importModel(@Context HttpHeaders headers, 
> @FormDataParam("file") InputStream uploadedInputStream,
>       @FormDataParam("file") FormDataContentDisposition fileMetaData, 
> @PathParam("version") String version,
>       @QueryParam("overwrite") boolean overwrite, @QueryParam("locale") 
> String locale) {
>       
>     ModelService modelService = 
> ModelServiceFactory.INSTANCE.getModelService();
>     Response response = modelService.importModel(uploadedInputStream, 
> overwrite, locale);
>     return response;
>   }
> }
> 
> 
> I have a Configuration Bundle like;
> 
> public class InsightManagerBundle implements 
> ConfiguredBundle<DWInsightManagerConfiguration> {
> 
> 
>   @Override
>   public void run(final DWInsightManagerConfiguration configuration, final 
> Environment environment) throws Exception {
>     configureCors(environment);
>   }
> 
> 
>   @Override
>   public void initialize(final Bootstrap<?> bootstrap) {
>     // nothing to do here, we need access to configuration and we won't have 
> that until run() is executed.
>   }
> 
> 
>   private void configureCors(Environment environment) {
>     final FilterRegistration.Dynamic cors =
>         environment.servlets().addFilter("CORS", CrossOriginFilter.class);
> 
> 
>     // Configure CORS parameters
>     cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
>     cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "origin, 
> content-type, accept, authorization");
>     cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, 
> "OPTIONS,GET,PUT,POST,DELETE,HEAD");
>     cors.setInitParameter(CrossOriginFilter.ALLOW_CREDENTIALS_PARAM, "true");
> 
> 
>     // Add URL mapping
>     cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, 
> "/*");
> 
>   }
> }
> 
> 
> This configuration bundle is being added in Application;
> 
> public final class DWInsightManagerApplication extends 
> Application<DWInsightManagerConfiguration> {
> 
> 
>   public DWInsightManagerApplication() {
>     super();
>   }
> 
> 
>   @Override
>   public String getName() {
>     return DWInsightManagerConfiguration.ROOT_PATH;
>   }
> 
> 
>   @Override
>   public void run(final DWInsightManagerConfiguration configuration, final 
> Environment environment) {
>     insightManager.customizeRouting(environment.jersey().getResourceConfig());
>   }
> 
> 
>   @Override
>   public void initialize(Bootstrap<DWInsightManagerConfiguration> bootstrap) {
>     super.initialize(bootstrap);
>     bootstrap.addBundle(new InsightManagerBundle());
>   }
> }
> 
> 
> 
> I tried adding in our Configuration class or within run method of our 
> application itself but it is of no use.
> 
> I always get "405 Method Not Allowed"
> 
> Response Headers;
> HTTP/1.1 405 Method Not Allowed
> Server: nginx
> Date: Mon, 24 Jun 2019 09:04:50 GMT
> Content-Length: 54
> Connection: keep-alive
> allow: DELETE,GET,OPTIONS,PUT
> .........
> 
> 
> DELETE, GET, PUT works without issues. This POST rest API works in other 
> framework, so I do not see any issue with that.
> 
> Is there something am missing basic stuff or is it an issue with 2.0.0-rc3 
> candidate. 
> 
> Any help would be highly appreciated.
> -- 
> You received this message because you are subscribed to the Google Groups 
> "dropwizard-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to dropwizard-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/dropwizard-dev/54ef6033-ccb2-443d-a42f-0b787f44492a%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dropwizard-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dropwizard-dev/AEDFB9A1-FFD1-40D8-867B-B5586A4C02F6%40googlemail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to