社区
Java
帖子详情
java调用VB写的webservice接口,接口中含有两个结构
syncretize
2013-01-20 05:29:58
java调用VB写的webservice接口,接口中含有两个结构,如何调用;
...全文
155
9
打赏
收藏
java调用VB写的webservice接口,接口中含有两个结构
java调用VB写的webservice接口,接口中含有两个结构,如何调用;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
VB
.NET/
JAVA
采用SOAP 与
Webservice
发送/接收数据
VB
.NET(2010)/
JAVA
采用SOAP 与
Webservice
发送/接收数据
webservice
的动态
调用
和静态
调用
webservice
的动态
调用
和静态
调用
。静态
调用
是指添加web引用的方式
调用
。动态
调用
是指通过反射等方式在代码
中
加载。
Java
与.net开发
webservice
详解大全
探讨
webservice
服务端和客户端用
java
或.net编
写
的情况,这又分为四种类型: 服务端、客户端都是用.net编
写
的,这里以
vb
.net为例。 服务端、客户端都是用
java
编
写
的。 服务端是
java
编
写
的,客户端是.net编
写
的。 服务端是.net编
写
的,客户端是
java
编
写
的。 开发环境:jdk1.6 + eclipse3.6 + vs.net2010 下面对这四种类型的编
写
方法一一详细讲解。
多语言
调用
WebService
技术文档.doc
内容概要:代码示例 C++
调用
WebService
,
Java
调用
WebService
,C#
调用
WebService
,Js
调用
WebService
,
VB
调用
WebService
,ASP
调用
WebService
,PHP
调用
WebService
。 适用人群:
WebService
开发人员 使用场景:跨平台
WebService
调用
目标:通过本资源学习,快速上手学会
WebService
调用
技术,并掌握多语言平台下,多种
调用
方式,解决实际工作问题。
WebService
在.NET
中
的实战应用一
WebService
在.NET
中
的实战应用,通过实例来增强编程能力
Java
51,401
社区成员
85,911
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章