web-dev-qa-db-ja.com

HTTPステータス415-コンテンツタイプを使用できません

JSON本体が返されるRESTサービスへのPOST操作

org.jboss.resteasy.spi.UnsupportedMediaTypeException

:コンテンツタイプの例外を使用できません

@Consumes(MediaType.APPLICATION_JSON)@Consumes("application/json")の両方が同じ例外を返しました。

Postman APIクライアントを使用してサービスを呼び出してみました。

image

@RolesAllowed("admin")
@POST   
@Consumes(MediaType.APPLICATION_JSON)
@Path("/auth")
public Response login(UserCl usr){

    if(usr.getUsername().compareTo("user") == 0 && 
                usr.getPassword().compareTo("pass") == 0){                      
        return Response.status(200).build(); 
    }
    else{
        return Response.status(401).build();
    }

}

12:44:07,322 WARN  [org.jboss.resteasy.core.SynchronousDispatcher] (http-localhost-127.0.0.1-8080-1) Failed executing POST user-service/auth: org.jboss.resteasy.spi.UnsupportedMediaTypeException: Cannot consume content type
    at org.jboss.resteasy.core.registry.Segment.match(Segment.Java:117) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.SimpleSegment.matchSimple(SimpleSegment.Java:33) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.Java:327) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.SimpleSegment.matchSimple(SimpleSegment.Java:44) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.Java:327) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.Java:374) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.Java:367) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.Java:307) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.Java:173) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.Java:118) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.Java:208) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.Java:55) [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.Java:50) [resteasy-jaxrs-2.3.2.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.Java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:329) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:248) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:275) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:161) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.Java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:155) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:102) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:109) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:368) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.coyote.http11.Http11Processor.process(Http11Processor.Java:877) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:671) [jbossweb-7.0.13.Final.jar:]
    at org.Apache.Tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.Java:930) [jbossweb-7.0.13.Final.jar:]
    at Java.lang.Thread.run(Thread.Java:745) [rt.jar:1.7.0_79]
17
AvenashKrish

Content-Typeヘッダーが設定されていません。デフォルトが何であるか覚えていないが、Chrome開発者ツールでヘッダー付きの完全なリクエストを見ることができる。

の JSON ドロップダウンの値は、構文の強調表示専用です。実際にはヘッダーを設定しません。ヘッダーを追加するだけです

Content-Type   ->>   application/json
27
Paul Samsotha