java - Restlet http handler failed: The “/” Character isn't allowed in a media type parameter name
阿神
阿神 2017-04-17 11:48:42
[Java讨论组]

问题概述: 现在用支付宝即时到账业务,异步通知出现了问题:
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 问题挂掉了
求大神指点

阿神
阿神

闭关修行中......

全部回复(1)
ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号