免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
CXF創(chuàng)建webservice客戶端和服務端
CXF創(chuàng)建webservice客戶端和服務端
分類: 【W(wǎng)ebservice】2013-07-13 18:42 10869人閱讀 評論(10)  舉報
Web服務cxf框架發(fā)布
目錄(?)[+]
原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本人聲明。否則將追究法律責任。
作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/article/details/9320053
一、CXF的介紹
Apache CXF是一個開源的WebService框架,CXF大大簡化了Webservice的創(chuàng)建,同時它繼承了XFire的傳統(tǒng),一樣可以和spring天然的進行無縫的集成。CXF框架是一種基于servlet技術(shù)的SOA應用開發(fā)框架,要正常運用基于CXF應用框架開發(fā)的企業(yè)應用,除了CXF應用本身之外,還需要JDK和servlet容器的支持。
二、CXF的準備條件
所需要的jar包:
xmlbeans-2.4.0.jar
wss4j-1.5.9.jar
jetty-server-7.1.6.v20100715.jar
jetty-util-7.1.6.v20100715.jar
geronimo-ws-metadata_2.0_spec-1.1.3.jar
geronimo-activation_1.1_spec-1.1.jar
geronimo-servlet_3.0_spec-1.0.jar
velocity-1.6.4.jar
jaxb-xjc-2.2.1.1.jar
xml-resolver-1.2.jar
wsdl4j-1.6.2.jar
cxf-2.3.0.jar
XmlSchema-1.4.7.jar
jaxb-api-2.2.1.jar
jaxb-impl-2.2.1.1.jar
neethi-2.0.4.jar
geronimo-annotation_1.0_spec-1.1.1.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
下載地址:http://download.csdn.net/detail/ch656409110/5748183   (取自己需要的jar包)
三、創(chuàng)建webservice服務端
1、先將jar包放入lib目錄
2、在web.xml中配置CXF框架的核心servlet
[html] view plaincopyprint?
<!-- CXF -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、在applicationContext.xml中導入xml,并且發(fā)布webservice服務。
[html] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd
"
default-autowire="byName"
>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- <jaxws:endpoint id="facelookWebService" address="/facelookWebService" implementor="com.facelook.webservice.server.FacelookWebServiceImpl"></jaxws:endpoint> -->
<!-- 不知道為什么,這里的webservice配置,只能用bean來實現(xiàn),否則 注入的service為空。但是之前有個項目卻可以,百思不得其解。。 -->
<bean id="facelookWebService" class="com.facelook.webservice.server.FacelookWebServiceImpl"/>
<jaxws:endpoint id="facelookWebService1" address="/facelookWebService" implementorClass="com.facelook.webservice.server.FacelookWebServiceImpl">
<jaxws:implementor ref="facelookWebService"/>
</jaxws:endpoint>
</beans>
4、定義webservice接口FacelookWebService 和 實現(xiàn)類FacelookWebServiceImpl。
[java] view plaincopyprint?
@WebService
public interface FacelookWebService {
/**
* 根據(jù)傳遞的條件獲取相冊信息
* xml的格式規(guī)范
* <?xml version=\"1.0\" encoding=\"UTF-8\"?>
* <facelook>
*  <condition>
*      <name></name>
*      <description></description>
*      <pageno></pageno>
*      <pagesize></pagesize>
*  </condition>
* </facelook>
* 這里的WebParam必須指定,否則調(diào)用的時候返回null
* @return
*/
public String getAlbumList(@WebParam(name="xmlStr") String xmlStr);
}
@WebService
//這后面的可以不寫注釋后面的配置,在applicationContext配置也一樣(serviceName="facelookWebService",endpointInterface="com.facelook.webservice.server.FacelookWebService")
public class FacelookWebServiceImpl implements FacelookWebService{
@Autowired
private AlbumService albumService;
@Override
public String getAlbumList(String xmlStr) {
try {
List<Album> albumList = getAlbumPage(xmlStr);
JSONArray jsonArray = JSONArray.fromObject(albumList);
return jsonArray.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
這樣子,基本上就可以了。5、保存代碼,發(fā)布項目,啟動tomact。
在地址欄輸入:http://localhost:8080/house/services/houseWebService?wsdl  即可看到發(fā)布的服務端的明細。
顯示如下:
這就表示CXF發(fā)布的webservice服務端成功了。
6、通過客戶端調(diào)用服務端webservice。
axis的客戶端訪問:
[java] view plaincopyprint?
public static void main(String[] args) throws ServiceException, RemoteException, MalformedURLException {
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "     <facelook>"
+ "        <condition>"
+ "            <name>家</name>"
+ "            <description></description>"
+ "            <pageno></pageno>"
+ "            <pagesize></pagesize>"
+ "        </condition>"
+ "     </facelook>";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress("http://localhost:8080/facelook/services/facelookWebService?wsdl");
QName qName = new QName("http://server.webservice.facelook.com/", "getAlbumList");
call.setOperationName(qName);
call.setUseSOAPAction(true);
//這下面兩行一定要加上,否則接收在服務器端收不到。
call.addParameter("xmlStr", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String result = (String) call.invoke(new Object[] { xmlStr });
System.out.println(result);
//將返回的字符串轉(zhuǎn)換成list集合
//JSONArray array = JSONArray.fromObject(result);
//List<Album> list = JSONArray.toList(array,Album.class);
}
CXF客戶端訪問:
[java] view plaincopyprint?
public static void main(String[] args) throws Exception {
//這個是用cxf 客戶端訪問cxf部署的webservice服務
//千萬記住,訪問cxf的webservice必須加上namespace ,否則通不過
//現(xiàn)在又另外一個問題,傳遞過去的參數(shù)服務端接收不到
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
//url為調(diào)用webService的wsdl地址
QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
//namespace是命名空間,methodName是方法名
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "     <facelook>"
+ "        <condition>"
+ "            <name>家</name>"
+ "            <description></description>"
+ "            <pageno></pageno>"
+ "            <pagesize></pagesize>"
+ "        </condition>"
+ "     </facelook>";
//paramvalue為參數(shù)值
Object[] objects=client.invoke(name,xmlStr);
//調(diào)用web Service//輸出調(diào)用結(jié)果
System.out.println(objects[0].toString());
}
在這里面?zhèn)鬟f的xml規(guī)范由 服務端自己規(guī)范好了,然后去解析、獲取參數(shù),執(zhí)行相應的操作,返回想要的結(jié)果給調(diào)用的客戶端。。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WebService CXF學習(高級篇1):整合Spring框架
CXF + Spring 開發(fā) Webservices
Spring和CXF整合發(fā)布WebService(服務端、客戶端)最詳細
WebService介紹
CXF(前身xfire) 整合 spring 以及 aop事務配置
使用cxf3.0.4搭建webservice服務需要的最精簡jar包
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服