一个关于在vertx中使用jersey框架接收text/xml类型的问题
2016-12-14 10:57
423 查看
使用vertx+jersey4.5.2做客户端api接口工程,在做微信回调的时候,其返回的数据Content-Type为text/xml,使用Consumes(MediaType.TEXT_XML)获取不到body中的数据,如下。
@Path("wxPayNotify")
@POST
@Consumes(MediaType.TEXT_XML)
@Produces(MediaType.TEXT_XML)
public String wxPayNotify(@Context HttpServerRequest request,String xml){...}
我做过其他的测试:使用@Consumes(MediaType.APPLICATION_XML)或者@Consumes(MediaType.TEXT_PLAIN),然后客户端用这两种类型是能获取到的,唯独MediaType.TEXT_XML获取不到,但是微信回调使用的是MediaType.TEXT_XML。如何才能获取到MediaType.TEXT_XML类型的数据?
通过debug调试,发现在DefaultJerseyHandler中的shouldReadData方法中,没有允许处理MediaType.TEXT_XML,添加上之后即可。
之前的代码为:
修改后的代码为:
note:修改某些开源的jar包中源文件之后,既可以用编译后的class文件替换掉原来的文件,又可以将源文件拷贝至我们的源文件中,修改后要保持报名和类名一样,这样在加载的时候就会先加载我们的文件。
@Path("wxPayNotify")
@POST
@Consumes(MediaType.TEXT_XML)
@Produces(MediaType.TEXT_XML)
public String wxPayNotify(@Context HttpServerRequest request,String xml){...}
我做过其他的测试:使用@Consumes(MediaType.APPLICATION_XML)或者@Consumes(MediaType.TEXT_PLAIN),然后客户端用这两种类型是能获取到的,唯独MediaType.TEXT_XML获取不到,但是微信回调使用的是MediaType.TEXT_XML。如何才能获取到MediaType.TEXT_XML类型的数据?
通过debug调试,发现在DefaultJerseyHandler中的shouldReadData方法中,没有允许处理MediaType.TEXT_XML,添加上之后即可。
之前的代码为:
// Allow text/plain if (MediaType.TEXT_PLAIN_TYPE.getType().equals(mediaType.getType()) && MediaType.TEXT_PLAIN_TYPE.getSubtype().equals(mediaType.getSubtype())) { return true; }
修改后的代码为:
// Allow text/plain,text/xml,text/json if (MediaType.TEXT_PLAIN_TYPE.getType().equals(mediaType.getType())) { return true; }这样就允许text/plain,text/xml,text/json等以text开头的Content-Type。
note:修改某些开源的jar包中源文件之后,既可以用编译后的class文件替换掉原来的文件,又可以将源文件拷贝至我们的源文件中,修改后要保持报名和类名一样,这样在加载的时候就会先加载我们的文件。
相关文章推荐
- 关于获取text类型value的一个小问题
- 关于如何使用反射声明一个泛型类型变量(泛型参数是动态的)的问题
- 关于在struts 框架中使用Filter过滤器解决汉字编码问题
- Access下“是/否”数据类型在使用NHibernate中的一个问题
- 一个关于指针+记录数据类型的使用技巧
- 一个关于Tsession的使用问题(摘录)
- VC中一个关于宏的使用问题
- ASP.Net下如何解决关于Access数据库“操作必须使用一个可更新的查询”问题
- C#写的计数器控件 - 一个关于相对路径使用的问题
- 关于在struts 框架中使用Filter过滤器解决汉字编码问题
- 一个关于Java数据类型的有趣问题
- ASP.NET MV框架下使用ajax上传要注意的一个问题
- 关于CPtrList使用中的一个问题
- 转:关于我使用spring mvc框架做文件上传时遇到的问题
- 关于.Text的一个问题
- VC中一个关于宏的使用问题,字符串之间转换,宽字符与普通字符
- 请教一个在使用xtree过程中关于htc组件编写的问题
- 关于在struts 框架中使用Filter过滤器解决汉字编码问题
- 关于typedef使用的一个问题
- 关于统计的一个sql问题,使用动态sql语句实现。