博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
外部系统xml数据发送至NC
阅读量:6715 次
发布时间:2019-06-25

本文共 2073 字,大约阅读时间需要 6 分钟。

hot3.png

在做外部系统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一样,需要导入)来处理终于可以了:

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类

转载于:https://my.oschina.net/wuqingyi/blog/678747

你可能感兴趣的文章
centos6.4搭建zabbix
查看>>
Nginx+Keepalived实现
查看>>
安装python的easy_install和pip
查看>>
android SQLite
查看>>
Sublime Text 2 快捷键用法大全
查看>>
放弃redis使用mongodb做任务队列支持增删改管理
查看>>
G口与S口的区别
查看>>
甲骨文拒绝SAP 2.72亿美元赔偿要求重审
查看>>
我的友情链接
查看>>
linux非交互式生成秘钥
查看>>
SQL Server数据库镜像搭建(无见证无域控)
查看>>
C练习小代码-20151108
查看>>
Mac os X 10.11 sudo 指令出问题了么?
查看>>
互联网协议入门(2)
查看>>
DataSource的可配参数有哪些,有哪些DataSource可以用
查看>>
本地文件共享服务(nfs samba ftp)
查看>>
scp通过代理proxy传输文件
查看>>
数据段、代码段、堆栈段、BSS段的区别
查看>>
WebService之Axis2快速入门(5): 管理会话(Session)
查看>>
以太坊RPC接口使用
查看>>