问题一
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]", "");解析正常。
具体哪些字符是非法的,刚才我想着通过[\\x20-\\x7e]这个正则取出xml里面到底是哪些字符非法。写了如下方法:
private static void getStrings(String str) {
Pattern p = Pattern.compile("[^\\x20-\\x7e]");
Matcher m = p.matcher(str);
ArrayList<String> strs = new ArrayList<String>();
while (m.find()) {
strs.add(m.group(0));
}
for (String s : strs){
System.out.println(s+"==");
}
}
输出的结果像一个空格。但是是不显示的。推测应该是从c传到java的过程中多了某个不可显示的字符在此也不必深究了,以后注意。
问题二
由于java项目是springMvc。所以控制层都交给spring管理。但是c过来的http。在spring管理的控制层中无法获取request.getInputStream()。最后无奈改成servlet。二者方法里面的代码完全一致。servlet正常获取。
原因至今不明。感谢这位仁兄给出的思路。解决了问题。
http://www.bitscn.com/pdb/java/200806/143983.html
客户端需要加如下代码:
java:httpURLConnection.setRequestProperty("content-type", "text/html");
c:ghttp_set_header(request, http_hdr_Content_Type, "text/html;charset=UTF-8");
相关推荐
Servlet通常用于处理HTTP请求,管理会话状态等。 3. EJB:提供了一种面向对象的方式来实现分布式组件,包括Session Beans(处理业务逻辑)和Entity Beans(持久化数据)。 4. JDBC:用于与数据库通信的API,可以执行...
通过这个课程,你不仅能够掌握JAVAEE开发的基本技能,还能深入了解SSM框架的协同工作,以及如何利用Solr和Thymeleaf提升项目的搜索功能和前端表现。此外,它还将为你提供宝贵的项目经验,助你在未来的职业生涯中更好...
对于JavaEE,你需要掌握Web开发的基本框架,了解如何使用Servlet和JSP来处理HTTP请求,以及如何通过EJB实现业务逻辑。至于C++,理解内存管理和指针操作至关重要,同时学习STL(Standard Template Library)库能提高...
【标签】"c" 指出项目中可能包含了C语言的元素,尽管主要描述的是JavaEE项目。这可能是由于某些特定的性能关键部分或者原生库的使用,用C语言编写可以提高效率。 【压缩包子文件的文件名称列表】"0-1-knapsack-...
【JAVAEE理念之高速公路路政管控信息体系构设与实现】 在当前的信息化时代,高速公路路政管控信息体系的构建显得尤为重要。JAVAEE作为一种广泛应用于企业级应用开发的技术框架,其理念可以有效地应用于高速公路管理...
【问卷调查系统】是一个基于软件工程方法论开发的项目,主要使用了JAVA和C语言进行编程。这个系统设计的目标是提供一个便捷、高效的方式来进行各种类型的问卷调查,它可能包括了用户界面、数据处理和存储等功能。从...
- 在大型项目中,通过封装通用的JDBC操作来实现代码复用。 - 示例: 创建通用的DAO (Data Access Object) 类来处理常见的数据库操作。 ##### 4.2 异常处理 - JDBC操作可能抛出多种异常,需要合理处理。 - 示例: 使用...
在电商项目中,商品图片、用户头像等大量小文件的存储和访问是常见的需求,Fastdfs通过将文件分散存储在不同的服务器上,实现文件的分布式管理,提高系统的稳定性和可扩展性。 Fastdfs的工作原理主要包括以下部分:...
"入云龙黑马19期javaee淘淘商城FastDFS上传图片fastdfs_client"这一主题,旨在介绍如何在淘淘商城这样的电商项目中,利用FastDFS的客户端组件`fastdfs_client`进行文件上传操作。 FastDFS是基于C语言开发的分布式...
- **方法调用**:通过`sayHello`方法发送请求并接收响应。 ##### 3. 构建脚本 `build.xml` `build.xml`文件用于自动化构建与部署过程,包含了多个目标(target),例如初始化环境、编译服务端代码、部署服务、编译...
前端使用jQuery可以通过AJAX异步请求后端API,获取JSON数据,并对其进行解析和展示。 例如,可以使用`$.ajax()`方法发起请求: ```javascript $.ajax({ url: "path/to/your/api", type: "GET", dataType: "json...
通过以上学习路线图,可以从零开始系统地学习Java及Android开发所需的各种技能。每个阶段都有相应的教程推荐,帮助初学者更好地理解并掌握相关知识点。此外,对于想要从事Java EE或Android开发的职业人士来说,还...