论坛首页 Java企业应用论坛

c语言通过http请求javaee项目

浏览 1735 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-03-25  

问题一

c通过http调用java提供的方法,传送xml。遇到一个奇怪的问题。肉眼看到传输过来的xml是没有问题的。

传过来的xml,如下:

<?xml version="1.0" encoding="UTF-8"?><SmsReq>        <Tel_No>13800009999</Tel_No>        <Login_Tm>2013-03-21 12:00:00</Login_Tm>    </SmsReq>

这段xml我放到jmeter里面请求我的java服务和我自己用java程序模拟http请求直接将这段字符串发过来,也都是可以解析的。

唯独通过c过来后。DocumentHelper.parseText(rsXml); 报如下错误。

org.dom4j.DocumentException: Error on line 1 of document  : Content is not allowed in trailing section. Nested exception: Content is not allowed in trailing section.

 

最后怀疑xml中有什么不显示的非法字符导致无法解析。随加replaceAll("[^\\x20-\\x7e]", "");解析正常。

 

具体哪些字符是非法的,至今未明。后续有时间搞明白。

 

问题二

由于java项目是springMvc。所以控制层都交给spring管理。但是c过来的http。在spring管理的控制层中无法获取request.getInputStream()。最后无奈改成servlet。二者方法里面的代码完全一致。servlet正常获取。

 

原因至今不明。由于c是另一个项目组的,不好意思让人老是给我发请求。网上看到的有用的结论

http://www.bitscn.com/pdb/java/200806/143983.html  但是由于c那边的哥们对代码不是很熟。这个也未验证。 后续有时间补上

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics