社区
Java
帖子详情
java调用VB写的webservice接口,接口中含有两个结构
syncretize
2013-01-20 05:29:58
java调用VB写的webservice接口,接口中含有两个结构,如何调用;
...全文
146
9
打赏
收藏
java调用VB写的webservice接口,接口中含有两个结构
java调用VB写的webservice接口,接口中含有两个结构,如何调用;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
syncretize
2013-01-22
打赏
举报
回复
如何解析XML内容呢,我上面那样做不对
tianfang
2013-01-22
打赏
举报
回复
不要自己写解析啊,用ws框架的客户端工具,生成接口对象。 一种ws框架不行就换一个,总可以找到现成解决方案的
syncretize
2013-01-21
打赏
举报
回复
这个接口是往数据库传值的,而且他们给的地址和文档都不能生成类,类是自己写的,可以调用接口但是值一个都没有传进去,只返回未成功的信息,改如何获取、解析xml文档
地雷
2013-01-21
打赏
举报
回复
你调用对方的webservice接口使用URL获取XML内容然后解析就可以了嘛?
syncretize
2013-01-21
打赏
举报
回复
之前用的方法, call.invoke(new Object[](a,b)); //a,b是两个对象,分别set了值 这种方法不行, 用上面文档的信息,说是用soap方式拼凑,我试着做了,可是不清楚如何传值,如何使用,我应该拼错了,求指点: package com.wh; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.net.URLEncoder; import java.util.Vector; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.CharacterData; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class SoapTest { /** * @param args * @throws Exception * java hnntsx.xuzhe.CallHTTPService */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String MethodName = "ImportVioVehicleWithPhoto "; String XmlNamespace = "http://tempuri.org//SurveilService"; //采用SOAP方式调用web service String SoapAction = XmlNamespace + MethodName; Vector ParamNames = new Vector(); Vector ParamData = new Vector(); ParamNames.addElement("Xh"); ParamData.addElement("3402001722166322"); ParamNames.addElement("Xh"); ParamData.addElement("3402001722166322"); ParamNames.addElement("Wfxw"); ParamData.addElement("222"); StringBuffer sb=new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"); sb.append("<soap:Body>"); sb.append("<" + MethodName + " xmlns=\"" + XmlNamespace + "\">"); sb.append("<AVioVehicle>"); sb.append("<CodeColumns>"); sb.append("<string>"+"</string>"); sb.append("<string>"+"</string>"); sb.append("</CodeColumns>"); sb.append("<CodeTexts>"); sb.append("<string>"+"</string>"); sb.append("<string>"+"</string>"); sb.append("</CodeTexts>"); sb.append("<NewGlbm>"+"</NewGlbm>"); sb.append("<Xh>"+"</Xh>"); sb.append("<Wfsj>"+"</Wfsj>"); sb.append("<Wfdd>"+"</Wfdd>"); sb.append("<Wfxw>"+"</Wfxw>"); sb.append("<Jcsd>"+"</Jcsd>"); sb.append("<Xsfx>"+"</Xsfx>"); sb.append("<Hpzl>"+"</Hpzl>"); sb.append("<Hphm>"+"</Hphm>"); sb.append("<Cjfs>"+"</Cjfs>"); sb.append("<Cjbm>"+"</Cjbm>"); sb.append("<Hdbj>"+"</Hdbj>"); sb.append("<Bz>"+"</Bz>"); sb.append("<Xzsd>"+"</Xzsd>"); sb.append("<Tpcclx>"+"</Tpcclx>"); //Parameters passed to the method are added here // for (int t = 0; t < ParamNames.size(); t++) { // String name = (String) ParamNames.elementAt(t); // String data = (String) ParamData.elementAt(t); // sb.append("<" + name + ">" + data + "</" + name + ">"); // // } sb.append("</AVioVehicle>"); sb.append("<AVioVehPhoto>"); sb.append("<Xh>"+"</Xh>"); sb.append("<Hpzl>"+"</Hpzl>"); sb.append("<Hphm>"+"</Hphm>"); sb.append("<Zp1>"+"</Zp1>"); sb.append("<Zp2>"+"</Zp2>"); sb.append("<Zp3>"+"</Zp3>"); //Parameters passed to the method are added here // for (int t = 0; t < ParamNames.size(); t++) { // String name = (String) ParamNames.elementAt(t); // String data = (String) ParamData.elementAt(t); // sb.append("<" + name + ">" + data + "</" + name + ">"); // // } sb.append("</AVioVehPhoto>"); sb.append("</" + MethodName + ">"); sb.append("</soap:Body>"); sb.append("</soap:Envelope>"); System.out.println("整理数据报文"); System.out.println(sb.toString()); // send an HTTP request to the web service String soap = sb.toString(); //必须加上编码方式,否则中文会乱码 byte[] data = soap.getBytes("UTF-8"); URL url = new URL("http://172.19.1.22:9080/ViolationService/Surveil.asmx"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(12 * 1000); conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据 conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); conn.setRequestProperty("Content-Length", String.valueOf(data.length)); conn.setRequestProperty("SOAPAction", SoapAction); OutputStream outStream = conn.getOutputStream(); outStream.write(data); outStream.flush(); outStream.close(); int Result = conn.getResponseCode(); if(Result==200){ byte[] data1 = readInputStream(conn.getInputStream()); String inputLine1 = new String(data1,"utf-8"); String inputLine; int start = 0; start = inputLine1.indexOf("<?xml") ; //Extract a singe return parameter inputLine = inputLine1.substring(start); System.out.println(inputLine); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(inputLine)); Document doc = db.parse(is); NodeList nodes = doc.getElementsByTagName(MethodName + "Result"); Element line = (Element) nodes.item(0); Node child = line.getFirstChild(); String retval=child.getNodeValue(); System.out.println("Name: " + retval); } System.out.println("Result[" + Result + "]"); } public static byte[] readInputStream(InputStream inStream) throws Exception{ ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while( (len = inStream.read(buffer)) !=-1 ){ outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); } }
syncretize
2013-01-21
打赏
举报
回复
SOAP 1.1 以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。 POST /ViolationService/Surveil.asmx HTTP/1.1 Host: 172.19.1.22 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org//SurveilService/ImportVioVehicleWithPhoto" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ImportVioVehicleWithPhoto xmlns="http://tempuri.org//SurveilService"> <AVioVehicle> <CodeColumns> <string>string</string> <string>string</string> </CodeColumns> <CodeTexts> <string>string</string> <string>string</string> </CodeTexts> <NewGlbm>string</NewGlbm> <Xh>string</Xh> <Wfsj>dateTime</Wfsj> <Wfdd>string</Wfdd> <Wfxw>string</Wfxw> <Jcsd>decimal</Jcsd> <Xsfx>string</Xsfx> <Hpzl>string</Hpzl> <Hphm>string</Hphm> <Cjfs>string</Cjfs> <Cjbm>string</Cjbm> <Hdbj>string</Hdbj> <Bz>string</Bz> <Xzsd>decimal</Xzsd> <Tpcclx>string</Tpcclx> </AVioVehicle> <AVioVehPhoto> <Xh>string</Xh> <Hpzl>string</Hpzl> <Hphm>string</Hphm> <Zp1>base64Binary</Zp1> <Zp2>base64Binary</Zp2> <Zp3>base64Binary</Zp3> </AVioVehPhoto> </ImportVioVehicleWithPhoto> </soap:Body> </soap:Envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ImportVioVehicleWithPhotoResponse xmlns="http://tempuri.org//SurveilService"> <ImportVioVehicleWithPhotoResult>string</ImportVioVehicleWithPhotoResult> </ImportVioVehicleWithPhotoResponse> </soap:Body> </soap:Envelope>
为啥呢
2013-01-21
打赏
举报
回复
要xml结构看wsdl文档就行了。 察看方法:webservice路径?wsdl
为啥呢
2013-01-20
打赏
举报
回复
一般两条路,一条去找开发这个webservice的人让他改成基本类型,另一条解析XML
syncretize
2013-01-20
打赏
举报
回复
asp.net知识库
通过作业,定时同步
两个
数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到...
net学习笔记及其他代码应用
30.简要谈一下您对微软.NET 构架下remoting和
webservice
两项技术的理解以及实际
中
的应用。 答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System....
WebService
之CXF入门视频教程
WebService
之CXF视频培训教程,该课程分为四个部分讲解
Java
cxf技术、包括
Webservice
基本概念、JAX-WS方式开发
WebService
应用、JAX-RS方式开发WebServiec应用、SpringBoot整合CXF开发
WebService
应用。
java
调用
webservice
第三方
接口
WebService
也一样,
WebService
客户端要
调用
一个
WebService
服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方 法可以
调用
,所以,
WebService
务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以...
java
service
接口
_
java
中
调用
web service
接口
原标题:
java
中
调用
web service
接口
Java
调用
webservice
接口
(使用AXIS的CALL
调用
方式)1.首先要把AXIS包里的jar文件放到
java
项目的lib目录下,这里用的是AXIS1_4版本 2.在
java
代码
中
实现:远程
调用
路径以及设置参数 3....
Java
50,531
社区成员
85,616
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章