- 浏览: 65817 次
- 性别:
- 来自: 福州
最新评论
-
mx675641819:
可以用!感谢楼主分享
JavaMai——邮箱验证用户注册 -
pangpang514:
...
javascript之eval函数 -
忆梦竹:
刘晓晓 写道你好,我在做一个课题,想自己制作张地图,并在安卓中 ...
ArcGIS在Android的应用 -
zdp510147278:
asdasd asdasdasdasd
ArcGIS在Android的应用 -
刘晓晓:
你好,我在做一个课题,想自己制作张地图,并在安卓中运用。我想问 ...
ArcGIS在Android的应用
Web Service学习小结——JAX-WS CXF AXIS2关系
Web Service是一种能够使应用程序在不同的平台使用不同的编程语言进行通讯的技术规范,而这种技术规范的实现可以用不同的方法,比如使用基于XML形式的协议(SOAP)进行通讯或者是RESTFUL形式的。
既然我们知道可以使用上面的两种形式进行通讯,那么我们就需要对上面的两种形式进行描述,规范化。而这些规范化的工作sun已经帮我们完成了,也就是 JAX-WS,JAX-RS这两种规范。
对于JAX-RS我现在没怎么了解,主要讲讲JAX-WS。
JAX-WS是一种规范,而在jdk1.6之后就有了自带的实现,但是这种实现是比较简单的,基本上就只能够传递SOAP协议格式的消息。这就是为什么我们可以在没有axis2或者CXF的情况下开发Web Service。 这时候我们就会想了,如果我们需要其他的服务,比如我想让JAX-WS与Spring集成。这种需求前辈都已经考虑过了,也实现了,不需要我们在去实现这样的需求。而这种需求的解决方案在JAX-WS中是采用框架。而JAX-WS的框架就有AXIS2和CXF。框架使用起来可能会更加灵活,功能更加强大。比如CXF不仅仅实现JAX-WS,也实现了JAX-RS规范。
楼主非常热心,非常感谢!
正如上个回复说的,我还没比较清楚的了解web service。不过我知道axis2和cxf分别是apache两个团队在维护的。具体里面怎么实现的没有看过源码,不懂。
下面是我之前看过的一篇关于axis2和CXF的比较。你参考下:
http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis/1245386#1245386
兄弟,对于web service我也是刚刚才要入门,这回估计还在门口晃悠呢。
不过对于你的问题,我网上搜索了一下。也看到一个帖子相当带劲。
http://blog.csdn.net/jackphang/article/details/8793993
你可以参照里面的讲解进行操作。我试过了一遍,可行。
顺带着我把我的代码附上,你如果不想修改,直接copy这份就得了。
既然我们知道可以使用上面的两种形式进行通讯,那么我们就需要对上面的两种形式进行描述,规范化。而这些规范化的工作sun已经帮我们完成了,也就是 JAX-WS,JAX-RS这两种规范。
对于JAX-RS我现在没怎么了解,主要讲讲JAX-WS。
JAX-WS是一种规范,而在jdk1.6之后就有了自带的实现,但是这种实现是比较简单的,基本上就只能够传递SOAP协议格式的消息。这就是为什么我们可以在没有axis2或者CXF的情况下开发Web Service。 这时候我们就会想了,如果我们需要其他的服务,比如我想让JAX-WS与Spring集成。这种需求前辈都已经考虑过了,也实现了,不需要我们在去实现这样的需求。而这种需求的解决方案在JAX-WS中是采用框架。而JAX-WS的框架就有AXIS2和CXF。框架使用起来可能会更加灵活,功能更加强大。比如CXF不仅仅实现JAX-WS,也实现了JAX-RS规范。
评论
4 楼
sswh
2013-06-05
忆梦竹 写道
正如上个回复说的,我还没比较清楚的了解web service。不过我知道axis2和cxf分别是apache两个团队在维护的。具体里面怎么实现的没有看过源码,不懂。
下面是我之前看过的一篇关于axis2和CXF的比较。你参考下:
http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis/1245386#1245386
下面是我之前看过的一篇关于axis2和CXF的比较。你参考下:
http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis/1245386#1245386
楼主非常热心,非常感谢!
3 楼
忆梦竹
2013-06-05
sswh 写道
AXIS2和CXF之间有什么渊源吗?还是两个完全不同的实现?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
引用
undefined element declaration 's:schema'
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
正如上个回复说的,我还没比较清楚的了解web service。不过我知道axis2和cxf分别是apache两个团队在维护的。具体里面怎么实现的没有看过源码,不懂。
下面是我之前看过的一篇关于axis2和CXF的比较。你参考下:
http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis/1245386#1245386
2 楼
忆梦竹
2013-06-05
sswh 写道
AXIS2和CXF之间有什么渊源吗?还是两个完全不同的实现?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
引用
undefined element declaration 's:schema'
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
兄弟,对于web service我也是刚刚才要入门,这回估计还在门口晃悠呢。
不过对于你的问题,我网上搜索了一下。也看到一个帖子相当带劲。
http://blog.csdn.net/jackphang/article/details/8793993
你可以参照里面的讲解进行操作。我试过了一遍,可行。
顺带着我把我的代码附上,你如果不想修改,直接copy这份就得了。
<?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://WebXml.com.cn/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://WebXml.com.cn/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://WebXml.com.cn/"> <s:element name="getRegionDataset"> <s:complexType /> </s:element> <s:element name="getRegionDatasetResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getRegionDatasetResult"> <s:complexType> <s:sequence> <s:any minOccurs="2" maxOccurs="2" /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> <s:element name="getRegionProvince"> <s:complexType /> </s:element> <s:element name="getRegionProvinceResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getRegionProvinceResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:element name="getRegionCountry"> <s:complexType /> </s:element> <s:element name="getRegionCountryResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getRegionCountryResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportCityDataset"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="theRegionCode" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportCityDatasetResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getSupportCityDatasetResult"> <s:complexType> <s:sequence> <s:any minOccurs="2" maxOccurs="2" /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportCityString"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="theRegionCode" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportCityStringResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getSupportCityStringResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="getWeather"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="theCityCode" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="theUserID" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getWeatherResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getWeatherResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="DataSet" nillable="true"> <s:complexType> <s:sequence> <s:any minOccurs="2" maxOccurs="2" /> </s:sequence> </s:complexType> </s:element> <s:element name="ArrayOfString" nillable="true" type="tns:ArrayOfString" /> </s:schema> </wsdl:types> <wsdl:message name="getRegionDatasetSoapIn"> <wsdl:part name="parameters" element="tns:getRegionDataset" /> </wsdl:message> <wsdl:message name="getRegionDatasetSoapOut"> <wsdl:part name="parameters" element="tns:getRegionDatasetResponse" /> </wsdl:message> <wsdl:message name="getRegionProvinceSoapIn"> <wsdl:part name="parameters" element="tns:getRegionProvince" /> </wsdl:message> <wsdl:message name="getRegionProvinceSoapOut"> <wsdl:part name="parameters" element="tns:getRegionProvinceResponse" /> </wsdl:message> <wsdl:message name="getRegionCountrySoapIn"> <wsdl:part name="parameters" element="tns:getRegionCountry" /> </wsdl:message> <wsdl:message name="getRegionCountrySoapOut"> <wsdl:part name="parameters" element="tns:getRegionCountryResponse" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetSoapIn"> <wsdl:part name="parameters" element="tns:getSupportCityDataset" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetSoapOut"> <wsdl:part name="parameters" element="tns:getSupportCityDatasetResponse" /> </wsdl:message> <wsdl:message name="getSupportCityStringSoapIn"> <wsdl:part name="parameters" element="tns:getSupportCityString" /> </wsdl:message> <wsdl:message name="getSupportCityStringSoapOut"> <wsdl:part name="parameters" element="tns:getSupportCityStringResponse" /> </wsdl:message> <wsdl:message name="getWeatherSoapIn"> <wsdl:part name="parameters" element="tns:getWeather" /> </wsdl:message> <wsdl:message name="getWeatherSoapOut"> <wsdl:part name="parameters" element="tns:getWeatherResponse" /> </wsdl:message> <wsdl:message name="getRegionDatasetHttpGetIn" /> <wsdl:message name="getRegionDatasetHttpGetOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getRegionProvinceHttpGetIn" /> <wsdl:message name="getRegionProvinceHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getRegionCountryHttpGetIn" /> <wsdl:message name="getRegionCountryHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetHttpGetIn"> <wsdl:part name="theRegionCode" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetHttpGetOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getSupportCityStringHttpGetIn"> <wsdl:part name="theRegionCode" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityStringHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getWeatherHttpGetIn"> <wsdl:part name="theCityCode" type="s:string" /> <wsdl:part name="theUserID" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getRegionDatasetHttpPostIn" /> <wsdl:message name="getRegionDatasetHttpPostOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getRegionProvinceHttpPostIn" /> <wsdl:message name="getRegionProvinceHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getRegionCountryHttpPostIn" /> <wsdl:message name="getRegionCountryHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetHttpPostIn"> <wsdl:part name="theRegionCode" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityDatasetHttpPostOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getSupportCityStringHttpPostIn"> <wsdl:part name="theRegionCode" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityStringHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getWeatherHttpPostIn"> <wsdl:part name="theCityCode" type="s:string" /> <wsdl:part name="theUserID" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:portType name="WeatherWSSoap"> <wsdl:operation name="getRegionDataset"> <wsdl:input message="tns:getRegionDatasetSoapIn" /> <wsdl:output message="tns:getRegionDatasetSoapOut" /> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <wsdl:input message="tns:getRegionProvinceSoapIn" /> <wsdl:output message="tns:getRegionProvinceSoapOut" /> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <wsdl:input message="tns:getRegionCountrySoapIn" /> <wsdl:output message="tns:getRegionCountrySoapOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <wsdl:input message="tns:getSupportCityDatasetSoapIn" /> <wsdl:output message="tns:getSupportCityDatasetSoapOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <wsdl:input message="tns:getSupportCityStringSoapIn" /> <wsdl:output message="tns:getSupportCityStringSoapOut" /> </wsdl:operation> <wsdl:operation name="getWeather"> <wsdl:input message="tns:getWeatherSoapIn" /> <wsdl:output message="tns:getWeatherSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="WeatherWSHttpGet"> <wsdl:operation name="getRegionDataset"> <wsdl:input message="tns:getRegionDatasetHttpGetIn" /> <wsdl:output message="tns:getRegionDatasetHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <wsdl:input message="tns:getRegionProvinceHttpGetIn" /> <wsdl:output message="tns:getRegionProvinceHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <wsdl:input message="tns:getRegionCountryHttpGetIn" /> <wsdl:output message="tns:getRegionCountryHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <wsdl:input message="tns:getSupportCityDatasetHttpGetIn" /> <wsdl:output message="tns:getSupportCityDatasetHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <wsdl:input message="tns:getSupportCityStringHttpGetIn" /> <wsdl:output message="tns:getSupportCityStringHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getWeather"> <wsdl:input message="tns:getWeatherHttpGetIn" /> <wsdl:output message="tns:getWeatherHttpGetOut" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="WeatherWSHttpPost"> <wsdl:operation name="getRegionDataset"> <wsdl:input message="tns:getRegionDatasetHttpPostIn" /> <wsdl:output message="tns:getRegionDatasetHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <wsdl:input message="tns:getRegionProvinceHttpPostIn" /> <wsdl:output message="tns:getRegionProvinceHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <wsdl:input message="tns:getRegionCountryHttpPostIn" /> <wsdl:output message="tns:getRegionCountryHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <wsdl:input message="tns:getSupportCityDatasetHttpPostIn" /> <wsdl:output message="tns:getSupportCityDatasetHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <wsdl:input message="tns:getSupportCityStringHttpPostIn" /> <wsdl:output message="tns:getSupportCityStringHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getWeather"> <wsdl:input message="tns:getWeatherHttpPostIn" /> <wsdl:output message="tns:getWeatherHttpPostOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="WeatherWSSoap" type="tns:WeatherWSSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getRegionDataset"> <soap:operation soapAction="http://WebXml.com.cn/getRegionDataset" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <soap:operation soapAction="http://WebXml.com.cn/getRegionProvince" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <soap:operation soapAction="http://WebXml.com.cn/getRegionCountry" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <soap:operation soapAction="http://WebXml.com.cn/getSupportCityDataset" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <soap:operation soapAction="http://WebXml.com.cn/getSupportCityString" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeather"> <soap:operation soapAction="http://WebXml.com.cn/getWeather" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWSSoap12" type="tns:WeatherWSSoap"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getRegionDataset"> <soap12:operation soapAction="http://WebXml.com.cn/getRegionDataset" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <soap12:operation soapAction="http://WebXml.com.cn/getRegionProvince" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <soap12:operation soapAction="http://WebXml.com.cn/getRegionCountry" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <soap12:operation soapAction="http://WebXml.com.cn/getSupportCityDataset" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <soap12:operation soapAction="http://WebXml.com.cn/getSupportCityString" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeather"> <soap12:operation soapAction="http://WebXml.com.cn/getWeather" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWSHttpGet" type="tns:WeatherWSHttpGet"> <http:binding verb="GET" /> <wsdl:operation name="getRegionDataset"> <http:operation location="/getRegionDataset" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <http:operation location="/getRegionProvince" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <http:operation location="/getRegionCountry" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <http:operation location="/getSupportCityDataset" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <http:operation location="/getSupportCityString" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeather"> <http:operation location="/getWeather" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWSHttpPost" type="tns:WeatherWSHttpPost"> <http:binding verb="POST" /> <wsdl:operation name="getRegionDataset"> <http:operation location="/getRegionDataset" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionProvince"> <http:operation location="/getRegionProvince" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getRegionCountry"> <http:operation location="/getRegionCountry" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityDataset"> <http:operation location="/getSupportCityDataset" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportCityString"> <http:operation location="/getSupportCityString" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeather"> <http:operation location="/getWeather" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="WeatherWS"> <wsdl:port name="WeatherWSSoap" binding="tns:WeatherWSSoap"> <soap:address location="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx" /> </wsdl:port> <wsdl:port name="WeatherWSSoap12" binding="tns:WeatherWSSoap12"> <soap12:address location="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx" /> </wsdl:port> <wsdl:port name="WeatherWSHttpGet" binding="tns:WeatherWSHttpGet"> <http:address location="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx" /> </wsdl:port> <wsdl:port name="WeatherWSHttpPost" binding="tns:WeatherWSHttpPost"> <http:address location="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
1 楼
sswh
2013-06-05
AXIS2和CXF之间有什么渊源吗?还是两个完全不同的实现?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
举例来说:对于 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
使用JDK6 的 wsimport、或者 CXF 的wsdl2java 解析都报错。
引用
undefined element declaration 's:schema'
但是axis2可以识别。
~~~~~~~~~~
AXIS2比CXF和JDK自带的WebService功能都要更加完善吗?
相关推荐
标题中的"axis-jax-ws-xfire.rar_jax"提到了三个关键术语:Axis、JAX-WS和XFire,这些都是与Java Web服务(Web Service)开发密切相关的技术。让我们详细了解一下这些概念及其在Java环境中的应用。 1. **Axis**: ...
EndPoint、JAX-WS方式的WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习
标题中的"axis2-1.8.0apache-cxf-3.4.4.rar"是一个压缩包文件,其中包含了两个重要的开源项目:Apache Axis2版本1.8.0和Apache CXF版本3.4.4。这两个项目都是用于构建和部署Web服务的重要工具,主要应用于Java开发...
本文将深入探讨两种流行的Java Web服务框架——Axis2和CXF,并提供一个简单的实例来帮助理解它们的工作原理和使用方法。 首先,让我们了解一下`Axis2`。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的...
【Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务】 Web Service是一种基于标准协议的,用于不同系统间交换数据的技术。SOAP(Simple Object Access Protocol)是Web Service常用的一种通信协议,它定义了...
当我们谈论“Axis2,CXF版本学习笔记”时,这通常涉及到两个主要的Java Web服务框架:Apache Axis2和Apache CXF。这两个框架都用于构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)...
1. **JAX-WS支持**:CXF实现了JSR 224(JAX-WS 2.2),使得开发者可以使用注解来定义服务接口和服务实现,方便地创建SOAP Web服务。 2. **JAX-RS支持**:CXF同样实现了JSR 311(JAX-RS 1.1),支持RESTful Web服务...
Axis支持JAX-RPC(Java API for XML-based RPC)规范,但随着JAX-WS(Java API for XML Web Services)的出现,Axis2应运而生,它提供了更现代的WebServices实现。 **CXF**,全称为CXF XFire eXtended,是另一个...
CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First...
CXF集成了多种协议和标准,如JAX-WS和JAX-RS,使得开发人员能够轻松地创建基于Java的Web服务。 Axis2则是Apache的另一个Web服务引擎,它是 Axis1.x 的升级版,设计用于提供高性能和模块化的服务。Axis2 支持SOAP ...
3. 生成WSDL:使用Apache Axis的java2wsdl工具,或者CXF的JAX-WS注解,自动生成WSDL文件。 4. 部署服务:将生成的Java类和服务描述文件(如WSDL)部署到服务器,例如Tomcat或Jetty。 5. 消费服务:客户端可以通过...
除了Axis2,还有其他Web Service框架,如CXF、JAX-WS等。CXF提供了更广泛的WS-*支持和更好的RESTful服务支持,而JAX-WS是Java标准API,与Java EE环境集成紧密。选择合适的框架取决于项目需求,如性能、可维护性、...
- **Axis2**:支持基本的Web服务标准,如WS-Policy等,但在最新规范的支持方面不如CXF全面。 - **CXF**:提供了更为全面的支持,特别是在对WS-Addressing、WS-Policy、WS-RM、WS-Security等高级Web服务标准的支持...
- **CXF**:由XFire和Celtix合并而成,是一个广泛使用的Web Services框架,支持JAX-WS 2.0。 - **Metro/JAX-WS RI**:Oracle提供的JAX-WS参考实现,与Java EE环境高度集成。 - **Spring-WS**:基于Spring框架的...
随着企业对技术的个性化需求增加,有时会需要在WAS中嵌入第三方的JAX-WS引擎,如Apache Axis2或Apache CXF等。 ### 标题知识点: - **WAS(WebSphere Application Server)**:IBM开发的一个多功能中间件,提供了...
**CXF**(CXF: Composite eXtensible Framework)是一个开源的Java Web服务框架,它提供了多种方式来创建和使用Web服务,包括JAX-WS和JAX-RS。CXF支持SOAP、RESTful、XML和JSON等多种通信协议,并且能够与Spring框架...
本书《开发Web服务:使用Apache CXF与Axis2》是针对希望学习如何使用Java创建Web服务的专业人士所编写的实用教程。作者Kent Kai Ok Tong以简明扼要的方式介绍了一系列复杂的Web服务标准和技术,并通过实际示例帮助...
1. **Web服务实现与消费**:CXF允许开发者使用JAX-WS(Java API for XML Web Services)或JAX-RS(Java API for RESTful Web Services)标准来创建和消费Web服务。这涵盖了SOAP(Simple Object Access Protocol)和...
1. **丰富的API支持**:CXF提供了JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)的实现,使得开发者可以选择使用SOAP或者RESTful风格来构建服务。 2. **多种绑定机制**:...
1. **同时使用Apache CXF 2.2.x和Axis2 1.5.x**:通过尽可能多地利用标准API(如JAX-WS、JAX-RS)来操作这两个平台。 2. **使用缓存创建可扩展的RESTful Web服务**:介绍如何通过缓存机制提高RESTful Web服务的性能...