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.

Reply via email to