- 浏览: 541422 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (233)
- 设计模式 (1)
- WEBLOGIC (2)
- spring (2)
- struts (1)
- hibernate (8)
- SOA (11)
- j2ee (0)
- corba (0)
- linux (2)
- oracle (0)
- webService (17)
- javaMail (1)
- junit (3)
- java (45)
- 正则表达式 (7)
- java+xml (4)
- html (2)
- javaScript (6)
- ajax (1)
- mysql (0)
- eclipse (2)
- eclipse插件开发 (3)
- 软件工程 (5)
- ant (6)
- 开源包 (6)
- 学习网站 (7)
- Struts2 (18)
- JSP (1)
- 持续集成 (4)
- FreeMaker (6)
- 工作项目点点 (4)
- Maven2 (6)
- JQuery (1)
- 日志记录 (9)
- 工作流 (4)
- BPEL (1)
- extJs (1)
- 组件 (1)
- OSGI (10)
- ESB总线学习 (1)
- 错误解决 (2)
- JMX (3)
- 网络知识 (1)
最新评论
-
duanlongk:
这个问题解决了么?
java.lang.NoClassDefFoundError: org/apache/tuscany -
sotrip:
从上面结果来看,HelloWorld.class是由虚拟机的内 ...
如何实现自己的classloader -
zengsir2008:
哎,不太明白。。。。
OSGI DS 实例 -
ralfsumahe:
...
使用XFire开发Web Service客户端完整入门教程 -
liuqiao_0702:
...
osgi spring hibernate =
http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html
Web 服务是通过WSDL文档来描述的。WSDL绑定描述了如何把服务绑定到消息传递协议(特别是SOAP消息传递协议)。WSDL 的SOAP绑定style描述了服务调用方式,即远程过程调用rpc (Remote Procedure Call)方式或文档document方式。use定义了类型是编码encoded 方式还是文字literal方式。
创建绑定时,可以选择 document 样式或 rpc样式。二者均具有自己的优点和缺点。使用 rpc样式时,要执行的方法的名称同时也是有效负载的根元素的名称。
WSDL调用服务提供了6种样式:
1.rpc/encoded
2.rpc/literal
3.document /encoded
4.document /literal
5.document/literal/wrapped
6.document/encoded/wrapped
1. rpc/encoded样式
由SOAP消息定义实际类型信息。
WSDL 文档样例:
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequest">
<wsdl:part name="content" type="xsd:string" />
<wsdl:part name="endDate" type="xsd:string" />
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequest" />
<wsdl:output message="tns:createNewAdResponse" />
</wsdl:operation>
...
</wsdl:portType>
<wsdl:binding name="ClassifiedServiceBinding"
type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="rpc"/>
<wsdl:input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://ws.apache.org/axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://ws.apache.org/axis2" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
...
SOAP请求报文样例:
<env:Envelope xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req: createNewAd xmlns:req="http://daily-moon.com/classifieds/">
<req:content xsi:type="xs:string">Vintage 1963 T-Bird...</req:content>
<req:endDate xsi:type="xs:string">4/30/07</req:endDate>
</req: createNewAd >
</env:Body>
</env:Envelope>
优点:
l WSDL 基本达到了尽可能地简单易懂的要求。
l 操作名出现在消息中,这样接收者就可以很轻松地把消息发送到方法的实现。
缺点:
l 类型编码信息(比如 xsi:type="xsd:int" )通常就是降低吞吐量性能的开销。
l 不能简单地检验此消息的有效性,因为只有 <req:content xsi:type="xs:string">Vintage 1963 T-Bird...</req:content> 行包含在 Schema 中定义的内容;其余的 soap:body 内容都来自 WSDL 定义。
2. rpc/literal样式
WSDL样例:
...
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequest">
<wsdl:part name="content" type="xsd:string"/>
<wsdl:part name="endDate "type="xsd:string"/>
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequest" />
<wsdl:output message="tns:createNewAdResponseMessage" />
</wsdl:operation>
...
</wsdl:portType>
...
<wsdl:binding name="ClassifiedServiceBinding" type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="rpc"/>
<wsdl:input>
<soap:body use="literal" namespace="http://ws.apache.org/axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://ws.apache.org/axis2" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
...
SOAP请求报文样例:
<env:Envelope
xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req: createNewAd xmlns:req="http://daily-moon.com/classifieds/">
<req:content>Vintage 1963 T-Bird</req:content>
<req:endDate>4/30/2007</req:endDate>
</req: createNewAd >
</env:Body>
</env:Envelope>
优点:
l WSDL 还是基本达到了尽可能地简单易懂的要求。
l 操作名仍然出现在消息中。
l 去掉了类型编码。
缺点:
l 仍然不能简单地检验此消息的有效性。因为只有 < req:content > 和<req:endDate>行中包含定义在 Schema 中的内容;soap:body 内容的其余部分来自于 WSDL 定义。
3. document/encoded样式
此种方式很少使用。
WSDL样例:
...
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
<xs:element type="xs:string" name="content" />
<xs:element type="xs:string" name="endDate" />
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequestMessage">
<wsdl:part name="part1" element="ns1:content" />
<wsdl:part name="part2" element="ns1:endDate" />
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequestMessage" />
<wsdl:output message="tns:createNewAdResponseMessage" />
</wsdl:operation>
...
</wsdl:portType>
...
<wsdl:binding name="ClassifiedServiceBinding" type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="document" />
<wsdl:input>
<soap:body use="encoded" />
</wsdl:input>
<wsdl:output>
<soap:body use=" encoded" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
SOAP请求报文样例:
<env:Envelope xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req:content xsi:type="xs:string">Vintage 1963 T-Bird</req:content>
<req:endDate xsi:type="xs:string">4/30/07</req:endDate>
</env:Body>
</env:Envelope>
4. document/literal样式
WSDL样例:
...
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
<xs:element type="xs:string" name="content" />
<xs:element type="xs:string" name="endDate" />
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequestMessage">
<wsdl:part name="part1" element="ns1:content" />
<wsdl:part name="part2" element="ns1:endDate" />
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequestMessage" />
<wsdl:output message="tns:createNewAdResponseMessage" />
</wsdl:operation>
...
</wsdl:portType>
...
<wsdl:binding name="ClassifiedServiceBinding" type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
SOAP请求报文样例:
<env:Envelope
xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req:content>Vintage 1963 T-Bird...</req:content>
<req:endDate>4/30/07</req:endDate>
</env:Body>
</env:Envelope>
优点:
l 没有编码信息
l 可以在最后用任何 XML 检验器检验此消息的有效性。 soap:body中每项内容都定义在 Schema 中。
缺点:
l SOAP 消息中缺少操作名。而如果没有操作名,发送就可能比较困难,并且有时变得不可能。
5. document/literal/wrapped样式
WSDL样例:
...
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
<xs:element name="createNewAdRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="content" />
<xs:element type="xs:string" name="endDate" />
</xs:sequence>
</xs:complexType>
</xs:element>
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequestMessage">
<wsdl:part name="part1" element="ns1:createNewAdRequest" />
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequestMessage" />
<wsdl:output message="tns:createNewAdResponseMessage" />
</wsdl:operation>
...
</wsdl:portType>
...
<wsdl:binding name="ClassifiedServiceBinding" type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="document"/>
<wsdl:input>
<soap:body use="literal" namespace="http://ws.apache.org/axis2" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://ws.apache.org/axis2" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
...
SOAP请求报文样例:
<env:Envelope xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req:createNewAdRequest xmlns:req="http://daily-moon.com/classifieds/">
<req:content>Vintage 1963 T-Bird...</req:content>
<req:endDate>4/30/07</req:endDate>
</req:createNewAdRequest>
</env:Body>
</env:Envelope>
注意此时SOAP Body中第一个元素的名称并不是操作的名称,而是Schema中的元素的名称。此时Schema中的元素的名称可以与操作名相同,也可以不同。如果取相同则是一种将操作名放入SOAP消息的巧妙方式。
此 SOAP 消息看起来非常类似于 RPC/literal的 SOAP 消息。您可能会说,它看起来与 RPC/literal的 SOAP 消息是完全一样的,不过,这两种消息之间存在着微妙的区别。在 RPC/literal的 SOAP 消息中, <soap:body> 下的< req:createNewAd> 根元素是操作的名称。在document/literal/wrapped的 SOAP 消息中, < req:createNewAdRequest > 子句是单个输入消息的组成部分引用的元素的名称。
document/literal/wrapped样式的特征有:
l 输入消息只有一个组成部分。
l 该部分就是一个元素。
l 该元素有与操作相同的名称。
l 该元素的复杂类型没有属性。
优点:
l 没有编码信息。
l 出现在 soap:body 中的每项内容都是由 Schema 定义的,可以很容易地检验此消息的有效性。
l 方法名又出现在 SOAP 消息中。
缺点:
l WSDL 较为复杂。
6. document/encoded/wrapped样式
此种方式很少使用
WSDL样例:
...
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://org.apache.axis2/xsd"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
...
<xs:element name="createNewAdRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="content" />
<xs:element type="xs:string" name="endDate" />
</xs:sequence>
</xs:complexType>
</xs:element>
...
</xs:schema>
</wsdl:types>
<wsdl:message name="createNewAdRequestMessage">
<wsdl:part name="part1" element="ns1:createNewAdRequest" />
</wsdl:message>
...
<wsdl:portType name="ClassifiedServicePortType">
<wsdl:operation name="createNewAd">
<wsdl:input message="tns:createNewAdRequestMessage" />
<wsdl:output message="tns:createNewAdResponseMessage" />
</wsdl:operation>
...
</wsdl:portType>
...
<wsdl:binding name="ClassifiedServiceBinding" type="tns:ClassifiedServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="createNewAd">
<soap:operation soapAction="createNewAd" style="document"/>
<wsdl:input>
<soap:body use="encoded" namespace="http://ws.apache.org/axis2" />
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="http://ws.apache.org/axis2" />
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
...
SOAP请求报文样例:
<env:Envelope xmlns:env="http://schemas.xmlSOAP.org/SOAP/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<req:createNewAdRequest xmlns:req="http://daily-moon.com/classifieds/">
<req:content xsi:type="xs:string">Vintage 1963 T-Bird...</req:content>
<req:endDate xsi:type="xs:string">4/30/07</req:endDate>
</req:createNewAdRequest>
</env:Body>
</env:Envelope>
附录:WSDL1.1规范中的SOAP Binding 信息( 对其中关键部分进行了中文翻译 )
SOAP Binding
WSDL includes a binding for SOAP 1.1 endpoints, which supports the specification of the following protocol specific information:
- An indication that a binding is bound to the SOAP 1.1 protocol
- A way of specifying an address for a SOAP endpoint.
- The URI for the SOAPAction HTTP header for the HTTP binding of SOAP
- A list of definitions for Headers that are transmitted as part of the SOAP Envelope
This binding grammar it is not an exhaustive specification since the set of SOAP bindings is evolving. Nothing precludes additional SOAP bindings to be derived from portions of this grammar. For example:
- SOAP bindings that do not employ a URI addressing scheme may substitute another addressing scheme by replacing the soap:address element defined in section 3.8.
- SOAP bindings that do not require a SOAPAction omit the soapAction attribute defined in section 3.4.
In the following example, a SubscribeToQuotes SOAP 1.1 one-way message is sent to a StockQuote service via a SMTP binding. The request takes a ticker symbol of type string, and includes a header defining the subscription URI.
Example 3. SOAP binding of one-way operation over SMTP using a SOAP Header
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="SubscribeToQuotes">
<part name="body" element="xsd1:SubscribeToQuotes"/>
<part name="subscribeheader" element="xsd1:SubscriptionHeader"/>
</message>
<portType name="StockQuotePortType">
<operation name="SubscribeToQuotes">
<input message="tns:SubscribeToQuotes"/>
</operation>
</portType>
<binding name="StockQuoteSoap" type="tns:StockQuotePortType">
<soap:binding style="document" transport="http://example.com/smtp"/>
<operation name="SubscribeToQuotes">
<input message="tns:SubscribeToQuotes">
<soap:body parts="body" use="literal"/>
<soap:header message="tns:SubscribeToQuotes" part="subscribeheader" use="literal"/>
</input>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="tns:StockQuoteSoap">
<soap:address location="mailto:subscribe@example.com"/>
</port>
</service>
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="SubscribeToQuotes">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="SubscriptionHeader" type="uriReference"/>
</schema>
</types>
</definitions>
This example describes that a GetTradePrice SOAP 1.1 request may be sent to a StockQuote service via the SOAP 1.1 HTTP binding. The request takes a ticker symbol of type string, a time of type timeInstant, and returns the price as a float in the SOAP response.
Example 4. SOAP binding of request-response RPC operation over HTTP
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="GetTradePriceInput">
<part name="tickerSymbol" element="xsd:string"/>
<part name="time" element="xsd:timeInstant"/>
</message>
<message name="GetTradePriceOutput">
<part name="result" type="xsd:float"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetTradePrice">
<input message="tns:GetTradePriceInput"/>
<output message="tns:GetTradePriceOutput"/>
</operation>
</portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetTradePrice">
<soap:operation soapAction="http://example.com/GetTradePrice"/>
<input>
<soap:body use="encoded" namespace="http://example.com/stockquote"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://example.com/stockquote"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
This example describes that a GetTradePrices SOAP 1.1 request may be sent to a StockQuote service via the SOAP 1.1 HTTP binding. The request takes a stock quote symbol string, an application defined TimePeriod structure containing a start and end time and returns an array of stock prices recorded by the service within that period of time, as well as the frequency at which they were recorded as the SOAP response. The RPC signature that corresponds to this service has in parameters tickerSymbol and timePeriod followed by the output parameter frequency, and returns an array of floats.
Example 5. SOAP binding of request-response RPC operation over HTTP
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
xmlns:xsd1="http://example.com/stockquote/schema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://example.com/stockquote/schema"
xmlns="http://www.w3.org/2000/10/XMLSchema">
<complexType name="TimePeriod">
<all>
<element name="startTime" type="xsd:timeInstant"/>
<element name="endTime" type="xsd:timeInstant"/>
</all>
</complexType>
<complexType name="ArrayOfFloat">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:float[]"/>
</restriction>
</complexContent>
</complexType>
发表评论
-
CXF+JAXB发布获取web
2009-03-26 09:50 2954CXF有多种数据绑定方式,如:Aegis Databindi ... -
StAX介绍
2009-03-10 09:55 2074Streaming API for XML (StAX) 是用 ... -
JAXB2.0
2009-03-10 09:28 3670WEB Service CXF实战3-服务实现 版权声明:转载 ... -
webservice学习
2008-12-30 11:03 1321webservice:[定义]建立可互操作的、分布式应用程序的 ... -
XFire客户端流程分析
2008-12-25 17:25 2614XFire是当前J2EE领域非常 ... -
使用XFire开发Web Service客户端完整入门教程
2008-12-25 17:22 5465虽然XFire现在已经被CXF取代,但在现在已经开发的项目中, ... -
webservice入门与ant结合
2008-12-25 17:05 1893一、实验环境 ... -
XFire在spring中应用
2008-12-25 10:29 2047xfire在spring的应用: xfire在spri ... -
XFire集成spring和单元测试
2008-12-25 10:12 1865http://www.springside.org.cn/do ... -
使用xfire开发jsr181风格的web服务
2008-12-25 10:09 1673JSR 181通过标准化一个易于学习且可以快速开发的Web服务 ... -
Eclipse构建WebServices(XFire )
2008-12-25 09:57 4269开发环境Sun Java 5+ Eclipse 3.2 +My ... -
浅谈SOAP
2008-12-24 14:36 1003随着计算机技术的不断 ... -
apache soap
2008-07-30 17:17 1619******************************* ... -
关于web.xml详细说明
2008-07-30 14:15 1217本节描述用作J2EE环境组 ... -
JavaSE6.0 Web Service学习笔记(引用)
2008-04-05 17:46 1199Web Service概述 Web Service ... -
使用XFire+Spring构建Web Service
2008-04-05 17:43 9801XFire是与Axis 2并列的新 ...
相关推荐
当开发Web服务时,理解WSDL的SOAP绑定和样式是非常重要的,因为它们直接影响到服务的消费方式和消息的格式。选择正确的样式可以提高服务的可维护性,简化客户端的实现,同时提高整体系统的互操作性。在实际应用中,...
它支持WSDL第一和第二样式,允许开发者从WSDL生成服务实现,或者从Java类生成WSDL。CXF提供了丰富的功能,包括WS-Security、WS-ReliableMessaging等高级Web服务标准的支持,简化了WebService的开发和调用过程。 在...
**简单WSDL实例详解** WSDL,全称为Web Services Description Language,是用于描述Web服务的一种XML格式。它定义了服务的接口,包括服务提供的操作、消息格式、通信协议以及服务的位置。WSDL文件是Web服务客户端和...
**WSDL2Java工具详解** 在IT行业中,Web服务(Web Service)是一种通过网络进行通信的标准接口,使得不同系统之间可以实现数据交换和业务协同。其中,WSDL(Web Services Description Language)是用于定义Web服务...
### WSDL 文件详解 #### 使用WSDL的原因 随着互联网的发展,跨系统间的通信变得日益重要。Web服务(网络服务)作为一种实现系统间交互的有效手段,其标准化和互操作性成为了关键议题。简单对象访问协议(SOAP)...
一、WSDL文件详解 WSDL文件是一个XML文档,用于描述Web Service的接口,包括服务提供的操作、消息格式、网络地址以及调用服务的协议。一个基本的WSDL文件会包含以下几个部分: 1. **服务定义**:定义服务的名称和...
### HTML、JS、XML、WSDL、SOAP基础知识详解 #### 第一节:HTML ##### 1. 什么是HTML? HTML,即HyperText Markup Language(超文本标记语言),是一种被广泛应用于构建网页的标准标记语言。HTML由一系列的元素组成...
### Java+Webservice调用方式详解 #### 一、引言 随着互联网技术的发展与企业级应用需求的增长,Web服务(Webservice)作为一种基于XML的标准协议,在不同平台间实现服务互操作方面扮演着越来越重要的角色。Java...
### ONVIF开发实例1详解 #### 一、利用gSOAP 2.8.14生成ONVIF相关源代码 在本节中,我们将详细探讨如何使用gSOAP工具(版本2.8.14)生成ONVIF相关的源代码。这一过程包括生成必要的头文件(`onvif.h`)以及相关的...
通过定义CSS样式和控件外观,可以创建统一的界面风格,同时保持代码的整洁和独立性。 ASP.NET 2.0还引入了母版页(Master Pages)的概念,允许开发者定义一个通用的布局,子页面可以继承这个布局,从而保持整个网站...
### Java术语详解 #### JMS (Java Message Service) **简介:** JMS,即Java消息服务,是一套标准的Java应用程序接口(API),用于创建、发送、接收和读取消息。这一服务允许开发者构建松耦合、可靠且具有扩展性的...
此外,打印功能的定制也十分关键,包括布局设计、打印样式设定等。 总之,《U9二次开发技术资料文档说明》提供了一个全面的学习路径,从基础的档案管理到复杂的业务逻辑实现,再到用户界面优化和系统集成,覆盖了U9...
**JAX-WS 2.2详解** JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务和客户端的规范,它提供了一种面向对象的方式来处理SOAP消息。JAX-WS 2.2是这个规范的版本,发布于2009年12月3日,其主要...
### CXF接口常用注解详解 #### 一、概述 CXF是一个强大的开源框架,用于构建和服务SOA架构中的各种Web服务。它提供了多种方式来创建Web服务客户端和服务端,其中包括利用注解来简化开发过程。本文档将详细介绍CXF...
【JAX-WS规范详解】 JAX-WS(Java API for XML Web Services)是Java平台上的一个关键标准,用于创建和消费XML Web服务。它在Java世界中扮演着与SOAP(简单对象访问协议)和WSDL(Web服务描述语言)交互的核心角色...
### 使用Spring+CXF开发WebService知识点详解 #### 一、引言 随着企业级应用的不断发展,服务间的交互越来越频繁,而WebService作为一种标准的服务提供方式,因其跨语言、跨平台等特性,得到了广泛应用。Apache CXF...
8. SOAP(简单对象访问协议)和WSDL(Web服务描述语言):在Java和XML结合的Web服务中,SOAP用于定义消息格式,WSDL用于描述服务接口和实现。 本书可能详细讲解了如何在Java项目中集成XML,包括创建和解析XML文档、...
4. **SOAP详解**:SOAP消息由XML组成,可以包含头信息和主体,支持RPC和文档样式的消息交换。HTTP是SOAP最常见的绑定协议,但由于SOAP的可扩展性,也可以使用其他传输协议如SMTP、MQ系列等。SOAP提供了在分布式环境...
2. WebService:WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的跨平台、跨语言的通信协议,用于不同系统间的数据交换。在这个项目中,可能被用来连接库存管理、支付网关或其他第三方服务,提供了一种灵活的...