標籤:title tostring message package meta aix 用戶端 知識庫 字典
Axis2+tomcat7.0 實現webService 服務端發布與用戶端的調用。
Aixs2開發webService的方法有很多,在此只介紹一種比較簡單的實現方法。
第一步:首先要下載開發所需要的jar包
下載:
axis2-1.6.2-war.zip http://www.apache.org/dist//axis/axis2/Java/core/1.6.2/
下載完後將axis2.war放至tomcat安裝目錄下的webapps檔案夾下,然後啟動tomcat後,在webapps目錄下會產生axis2檔案夾。 訪問http://localhost:8080/axis2/能看到以下頁面表示axis2運行成功。
第二步 在MyEclipse下建立Web Project,工程名:elecProject。建立包cn.itcast.elec.service,在cn.itcast.elec.service下建立類WebSystemDDLServiceImpl。
[java] view plain copy
- package cn.itcast.elec.service.impl;
-
- import java.util.ArrayList;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
-
- import org.apache.commons.lang.StringUtils;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
-
- import cn.itcast.elec.dao.IElecSystemDDLDao;
- import cn.itcast.elec.domain.ElecSystemDDL;
-
- public class WebSystemDDLServiceImpl {
-
- public String findSystemByKeyword(String keyword) {
- ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
- IElecSystemDDLDao elecSystemDDLDao = (IElecSystemDDLDao) ac.getBean(IElecSystemDDLDao.SERVICE_NAME);
-
- //組織查詢條件
- String condition = "";
- List<Object> paramsList = new ArrayList<Object>();
- if(StringUtils.isNotBlank(keyword)){
- condition += " and o.keyword = ?";
- paramsList.add(keyword);
- }
- Object [] params = paramsList.toArray();
- //排序語句
- Map<String, String> orderby = new LinkedHashMap<String, String>();
- orderby.put("o.ddlCode","asc");//按照資料項目的編號升序排列
- //資料字典進行查詢的時候,使用二級緩衝增強檢索的效率
- List<ElecSystemDDL> list = elecSystemDDLDao.findColectionByConditionNoPageWithCache(condition, params, orderby);
- // List<ElecSystemDDL> list = elecSystemDDLDao.findColectionByConditionNoPage(condition, params, orderby);
- StringBuffer webObject = new StringBuffer("");//axis2支援String類型和XML的類型
- if(list!=null && list.size()>0){
- for(int i=0;i<list.size();i++){
- webObject.append(list.get(i).getDdlName()+",");//值之間用逗號分隔
- }
- webObject.deleteCharAt(webObject.length()-1);
- }
- return webObject.toString();
- }
- }
在WEB-INF目錄下修改web.xml檔案,內容如下:
[html] view plain copy
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <!--Axis2 config start-->
- <servlet>
- <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class > <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- <!--Axis2 end-->
- </web-app>
把tomcat安裝目錄下的webapps/axis2/WEB-INF下的modules、service和conf檔案拷至itcastProject下的WEB-INF目錄下。同時把lib下的如下jar包也拷到項目的lib包下
為了與項目的其他包不發生衝突,需要的jar包有:
然後在WEB-INF/services下建立systemDDLService/META-INF路徑,
META-INF下建立services.xml,
內容如下:
[html] view plain copy
- <?xml version="1.0" encoding="UTF-8"?>
- <service name="systemDDLService">
- <description>elecProject Service Example</description>
- <parameter name="ServiceClass">cn.itcast.elec.service.impl.WebSystemDDLServiceImpl</parameter>
- <operation name="findSystemByKeyword">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
- </operation>
- </service>
啟動tomcat後訪問:
http://127.0.0.1:8080/elecProject/services/systemDDLService?wsdl能看到服務資訊了。 到此Axis2的WebService服務已成功發布。
看webservice的使用說明書,記住要從下向上看。
(1)
(2)
(3)
(4)
(5)
Axis2用戶端調用:
下面看看利用axis2 用戶端調用執行個體
用戶端程式需要的jar包
tomcat 用AXIS2發布WebService 網站的方法