外部系统xml数据发送至NC_吴清沂的博客-程序员宅基地

在做外部系统xml数据发送至NC的测试中,按照用友给的示例代码,出现了一些错误。


首先是找不到XMLUtil这个类。后来,用解压软甲打开NC系统安装包(170几兆)中的setup.jar文件,在NCCACHE/server3_D--ufsoft-nchome_80/CODE/lib中找到basic.jar,XMLUtil这个类就在里面。将basic.jar解压出来,在eclipse中,右击项目>build path>add extra archives>选择basic.jar。回到eclipse 代码编辑界面中,import nc.vo.jcom.xml.XMLUtil;


但是,回执信息却提示 从输入流转换Document出错。后来,使用jdom(版本2.0.6,跟上面的basic.jar一样,需要导入)来处理终于可以了:
</pre><pre name="code" class="java">import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;


import org.jdom2.input.DOMBuilder;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.XMLOutputter;
import org.w3c.dom.Document;

import nc.vo.jcom.xml.XMLUtil;

public class XDTest {

	public static void main(String[] args) {
		String url = ".........";
		URL realURL;
		try {
			realURL = new URL(url);
			HttpURLConnection connection = (HttpURLConnection) realURL.openConnection();
			connection.setDoOutput(true);
			connection.setRequestProperty("content-type", "text/xml");
			connection.setRequestMethod("POST");

			// 将Document对象写入连接的输出流中
			File file = new File("C:/Users/wuqingyi/Desktop/凭证.xml");
			InputStream input = new FileInputStream(file);
			Document doc = XMLUtil.getDocumentBuilder().parse(input);
			// // 构造器
			SAXBuilder saxBuilder = new SAXBuilder();
			// // 设定格式
			XMLOutputter out = new XMLOutputter();
///注意这里,doc需要转换成JDOM的Document类/
			out.output(new DOMBuilder().build(doc), connection.getOutputStream());

			// 从连接的输入流中取得回执信息
			InputStream inputStream = connection.getInputStream();
			org.jdom2.Document jDoc = saxBuilder.build(inputStream);
			out.output(jDoc, new OutputStreamWriter(new FileOutputStream(new File("C:/Users/wuqingyi/Desktop/ret.xml")),
					"UTF-8"));
		} catch (Exception e1) {
			e1.printStackTrace();
		}
	}
}


主要问题在示例代码中的("content-type", "text/xml");而不是("contect-type", "text/xml");其次是XMLUtil.printDOMTree(writer, doc, 1);这个printDOMTree根本没用。注意:doc是org.w3c.dom.Document的Document类,而上面代码中的new DOMBuilder().build(doc)返回的是JDOM中的Document类
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wuqingyisld/article/details/51694238

智能推荐

蓝桥杯-历届试题 拉马车_被代码殴打的砖头的博客-程序员宅基地

问题描述小的时候,你玩过纸牌游戏吗?  有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:  假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:  A方:[K, 8, X, K, A, 2, A, 9, 5, A]  B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开...

2020-11-18_BloodOfThistle的博客-程序员宅基地

区间素数和(C语言版)问题描述输入两个整数,计算它们之间所有素数的和。例如,输入10和1,因为在1到10之间有2,3,5和7共4个素数,因此输出和是17。输入描述两个以空格隔开的无序整数输出描述一个整数样例输入-5 5样例输出10...

计算机视觉的迭代方法,计算机视觉中迭代优化方法研究Research on iterative optimization method in computer vision.pdf..._weixin_39617113的博客-程序员宅基地

计算机视觉中迭代优化方法研究Research on iterative optimization method in computer vision论文题目:计算机视觉中迭代优化方法研究专 业:应用数学硕 士 生:李 茜 (签名)指导教师:李占利 ...

Nature盘点:从Fortran、arXiv到AlexNet,这些代码改变了科学界_机器学习算法与Python学习-公众号的博客-程序员宅基地

点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路选自Nature, 作者:Jeffrey M. Perkel机器之心编译从 Fortran 编译器到 arXiv 预印本库、...

计算机组成原理期末考试重点_远是远洋的洋的博客-程序员宅基地_计算机组成原理期末重点

一 选择题1. x = -1011,y = 0101,求(x-y)补解:[x]原=1,1011,[x]补=1,0101[y]原=0,0101,[y]补=0,0101,[-y]补=1,1011[x-y]补=1,0101+1,1011=1,00002. 原码乘法的原理:操作数绝对值相乘,符号单独处理(由两原码符号位异或决定,相同为0,不同为1)3. 浮点数:阶码决定取值范围,尾...

linux mysql 5.7编码_linux系统mysql-5.7 修改字符集_雾里元宝的博客-程序员宅基地

起因:我在网上看修改mysql字符的文章时,都说配置/etc/mysql/my.cnf文件然而我打开我上述的my.cnf文件时,发现里面的内容跟别人的不一样,我就觉得这个肯定不是正确的文件经过我在官网的研究,发现了真正的文件是这个/etc/mysql/mysql.conf.d/mysqld.cnf至少在我本地电脑和云服务器上都是这个,或者说,按照我的博文安装的mysql数据库都是上面的文件然后 我...

随便推点

java 正则 空格_java 正则匹配空格字符串 正则表达式截取字符串_铺地板的博客-程序员宅基地

java 正则匹配空格字符串 正则表达式截取字符串需求:从一堆sql中取出某些特定字符串:比如配置的sql语句为:"company_code = @cc and project_id = @pid ; update t set a = @aa,[email protected],[email protected],[email protected];update t2 set [email protected]";我要拿出所有的以@开头的作为变量,并且去重,则如下玩:ps:其中正则匹配...

java spring context_Spring-Context的注解实现依赖注入功能_黑科技玩机的博客-程序员宅基地

使用Spring-Context的注解实现依赖注入功能.Demo要点:本例子中主要使用Annotation功能来实现对MoviceService的注入。我们将Cinema.java的头部标注为@Component说明该类交由Spring托管。而Cinema.java中的属性MoviceService标注为@Autowired,则Spring在初始化Cinema类时会从Application Con...

(转)Delphi7中QuickReport组件(QReport报表)安装方法及重要属性_weixin_34088583的博客-程序员宅基地

Delphi7中没有办法直接使用QuickReport组件,因为在Delphi7中没有将QuickReport组件包作为默认组件打包,如果要使用此组件,需要先安装一下。 打开delphi7,点Component-&gt;Install Packages(安装包),在打开窗口中,点"Add"按钮,然后在delphi7\Bin文件夹里,找到dclqrt70.dpl文件,双击即可,再点击“O...

Hive自定义函数(结合Idea)_老菜啦的博客-程序员宅基地

一 自定义UDF函数1)创建一个 Maven 工程 Hive2)导入依赖&lt;dependencies&gt;&lt;!--https://mvnrepository.com/artifact/org.apache.hive/hive-exec--&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.hive&lt;/groupId&g...

java webview 内核_android4.4 webview chromium实现硬件渲染的chromium内核结构_冷判官的博客-程序员宅基地

draw_gl_functor.cpp中定义了全局函数:void SetChromiumAwDrawGLFunction() {g_aw_drawgl_function = reinterpret_cast(draw_function);}设置给draw_gl_functor.cpp的全局变量g_aw_drawgl_function的是AwContents.java中nativeGetAwDraw...

推荐文章

热门文章

相关标签