websrvice 学习

1、什么是 wsdl?

用一种和具体语言无关的抽象方式定义了给定 WEB 服务收发的有关消息和服务。

webservice wsdl 各元素详解参考:https://blog.youkuaiyun.com/wenzhi20102321/article/details/68486526

 

2、webservice 四种发布方式

CXF

Xfire

AXIS2

AXIS1

详细可参考:http://blog.youkuaiyun.com/zl834205311/article/details/51612207

 

3、webservice   客户端调用方式

方式一:

import org.codehaus.xfire.client.Client;

public class YbQuartSend {
	
	public void work(){
		
	}
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
		sb 
				.append("<?xml version=\'1.0\' encoding=\'GBK\' standalone=\'yes\'?>")
//				.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
				.append("<LabresultDownsyndromeXml>")
				.append("<labresultDownsyndromeData>")
				.append("<batchDepaId>455767793</batchDepaId>")
				.append("<accessToken>9b5725294a871b9322dd8c406fbe6bb8</accessToken>")
				.append("<incaSerumType>1</incaSerumType>")
				.append("<incaAfp>1</incaAfp>")
				.append("<incaAge>28</incaAge>")
				.append("<incaDate>946656060000</incaDate>")
				.append("<incaGestationalWeeks>14</incaGestationalWeeks>")
				.append("<incaHcg>1</incaHcg>")
				.append("<incaNt>1</incaNt>")
				.append("<incaNumFetus>3485</incaNumFetus>")
				.append("<incaPappa>1</incaPappa>")
				.append("<incaT21End>1</incaT21End>")
				.append("<incaT18End>1</incaT18End>")
				.append("<incaType>1</incaType>")
				.append("<incaUe3>1</incaUe3>")
				.append("<incaDpDepa>77438B840EF4483B8223C5B0562E6D20</incaDpDepa>")
				.append("<womaHealthno>0001010080000292222</womaHealthno>")
				.append("</labresultDownsyndromeData>")
				.append("</LabresultDownsyndromeXml>");
		System.out.println(sb.toString());
//		String result=doWebservice("disposeLabresultHighThroughputSequenceByXml",sb.toString());
		String result=doWebservice("disposeLabresultDownsyndromeByXml",sb.toString());
	}
	
	protected static String doWebservice(String methodname, String reqParam) {
		String result = "";
		String url="http://127.0.0.1:9529/mchs_service/services/labresultWebService?wsdl";
		try {
			Client client1 = null;
			client1 = new Client(new URL(url));
			Object[] strResult1 = null;
			strResult1 = client1.invoke(methodname, new Object[]{reqParam});
			result = (String) strResult1[0];
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
		
	}
}

 

方式二:

使用 Myeclipse 自带工具生成客户端代码

新建一个Java工程,右键项目新建other,选择web services 的Web Service Client 在Service definition中填入wsdl地址如:

http://127.0.0.1:9529/mchs_service/services/labresultWebService?wsdl

finish 就可以生成客户端代码了。

 

其它方式可参考:

http://www.cnblogs.com/feiyi211/p/6856553.html

 

Web服务(Web Service)是一种通过网络进行通信的分布式计算系统,通过标准的Web协议和格式(如HTTP和XML)实现不同平台之间的互操作性。Web服务通常使用SOAP协议来传输数据,并使用WSDL描述服务接口。 Web服务接口是Web服务的核心组件之一,它定义了Web服务提供的方法和参数,以及它们的数据类型和返回值类型。Web服务接口通常使用WSDL(Web Services Description Language)描述,WSDL是一种XML格式的文档,描述了Web服务的接口、数据类型和操作。 以下是一个简单的Web服务接口示例,它包含一个名为“HelloWorld”的方法,该方法接受一个字符串参数,并返回一个字符串: ```xml <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://example.com/hello" targetNamespace="http://example.com/hello"> <message name="helloRequest"> <part name="name" type="xsd:string"/> </message> <message name="helloResponse"> <part name="message" type="xsd:string"/> </message> <portType name="HelloWorldPortType"> <operation name="hello"> <input message="tns:helloRequest"/> <output message="tns:helloResponse"/> </operation> </portType> <binding name="HelloWorldBinding" type="tns:HelloWorldPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="hello"> <soap:operation soapAction="http://example.com/hello/hello"/> <input> <soap:body use="encoded" namespace="http://example.com/hello" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="encoded" namespace="http://example.com/hello" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="HelloWorldService"> <port name="HelloWorldPort" binding="tns:HelloWorldBinding"> <soap:address location="http://example.com/hello"/> </port> </service> </definitions> ``` 在这个例子中,WSDL文件定义了一个名为“HelloWorld”的Web服务,它使用RPC(Remote Procedure Call)风格和SOAP协议。该服务只有一个方法“hello”,它接受一个名为“name”的字符串参数,并返回一个字符串类型的响应。 WSDL文件中的`<portType>`元素定义了Web服务接口,包含一个名为“HelloWorldPortType”的端口类型,该端口类型定义了一个名为“hello”的操作,该操作包含一个输入消息“helloRequest”和一个输出消息“helloResponse”。 `<binding>`元素定义了Web服务的绑定,指定了使用SOAP协议和HTTP传输协议进行通信。`<service>`元素定义了服务的名称和端口,指定了服务的地址。 WSDL文件中还包含一些其他的元素,例如`<message>`元素定义了消息的结构和类型,`<soap:body>`元素定义了SOAP消息体的结构和编码格式,等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值