Restlet http handler failed: The “/” Character isn't allowed in a media type parameter name

发布于 2022-08-29 18:40:31 字数 2495 浏览 27 评论 0

问题概述: 现在用支付宝即时到账业务,异步通知出现了问题:
apache 的 error message 是:
java.lang.IllegalArgumentException: The Content Type could not be read.
at org.restlet.engine.header.ContentType.(ContentType.java:155)
at org.restlet.engine.adapter.ServerCall.getRequestEntity(ServerCall.java:243)
at org.restlet.engine.adapter.HttpRequest.getEntity(HttpRequest.java:503)
at org.restlet.engine.application.Decoder.beforeHandle(Decoder.java:124)
at org.restlet.routing.Filter.handle(Filter.java:204)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
...
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at
Caused by: java.io.IOException: The "/" character isn't allowed in a media type parameter name. at org.restlet.engine.header.ContentTypeReader.readValue(ContentTypeReader.java:178) at org.restlet.engine.header.ContentType.(ContentType.java:148) ... 41 more Error while handling an HTTP server call: Error while handling an HTTP server call

我已经试过加annotation:

         @Post("application/json")

或者加request headers:

        ClientResource cr = new ClientResource("...");
        Series<Header> headers = (Series<Header>)      cr.getRequestAttributes().get("org.restlet.http.headers");
     if (headers == null) {              
        headers = new Series(Header.class); 
        headers.add("Access-Control-Allow-Origin", "*");
        headers.add("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
        headers.add("Access-Control-Allow-Headers", "Content-Type");                
        headers.add("Access-Control-Allow-Headers", "authCode");
        headers.add("Access-Control-Allow-Headers", "origin, x-requested-with, content-type");
    } 

    if (headers != null) {              
        headers.add("Content-Type", "application/json");                
        cr.getRequestAttributes().put("org.restlet.http.headers", headers); 
    }

但是都没有解决问题,看起来支付宝发的异步post在进入post code handler 之前就因为restlet的content-type 问题挂掉了
求大神指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残月升风 2022-09-05 18:40:31

遇到同样问题,现在有没有解决?求指教

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文