tomcat 用AXIS2发布WebService 网站的方法

简介: 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文件夹。

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
 
  1. package cn.itcast.elec.service.impl;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.LinkedHashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import org.apache.commons.lang.StringUtils;  
  9. import org.springframework.context.ApplicationContext;  
  10. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  11.   
  12. import cn.itcast.elec.dao.IElecSystemDDLDao;  
  13. import cn.itcast.elec.domain.ElecSystemDDL;  
  14.   
  15. public class WebSystemDDLServiceImpl {  
  16.   
  17.     public String findSystemByKeyword(String keyword) {  
  18.         ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");  
  19.         IElecSystemDDLDao elecSystemDDLDao = (IElecSystemDDLDao) ac.getBean(IElecSystemDDLDao.SERVICE_NAME);  
  20.           
  21.         //组织查询条件  
  22.         String condition = "";  
  23.         List<Object> paramsList = new ArrayList<Object>();  
  24.         if(StringUtils.isNotBlank(keyword)){  
  25.             condition += " and o.keyword = ?";  
  26.             paramsList.add(keyword);  
  27.         }  
  28.         Object [] params = paramsList.toArray();  
  29.         //排序语句  
  30.         Map<String, String> orderby = new LinkedHashMap<String, String>();  
  31.         orderby.put("o.ddlCode","asc");//按照数据项的编号升序排列  
  32.         //数据字典进行查询的时候,使用二级缓存增强检索的效率  
  33.         List<ElecSystemDDL> list = elecSystemDDLDao.findColectionByConditionNoPageWithCache(condition, params, orderby);  
  34. //      List<ElecSystemDDL> list = elecSystemDDLDao.findColectionByConditionNoPage(condition, params, orderby);  
  35.         StringBuffer webObject  = new StringBuffer("");//axis2支持String类型和XML的类型  
  36.         if(list!=null && list.size()>0){  
  37.             for(int i=0;i<list.size();i++){  
  38.                 webObject.append(list.get(i).getDdlName()+",");//值之间用逗号分隔  
  39.             }  
  40.             webObject.deleteCharAt(webObject.length()-1);  
  41.         }  
  42.         return webObject.toString();  
  43.     }  
  44. }  

 

 

在WEB-INF目录下修改web.xml文件,内容如下:  

[html]  view plain  copy
 
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <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">       
  3. <!--Axis2 config start-->   
  4. <servlet>    
  5. <servlet-name>AxisServlet</servlet-name>   <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class >   <load-on-startup>1</load-on-startup>   
  6. </servlet>    
  7. <servlet-mapping>       
  8. <servlet-name>AxisServlet</servlet-name>    <url-pattern>/services/*</url-pattern>     
  9. </servlet-mapping>      
  10. <!--Axis2  end-->     
  11. </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
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <service name="systemDDLService">         
  3.     <description>elecProject Service Example</description>          
  4.     <parameter name="ServiceClass">cn.itcast.elec.service.impl.WebSystemDDLServiceImpl</parameter>    
  5.     <operation name="findSystemByKeyword">             
  6.         <messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />         
  7.     </operation>  
  8. </service>   



 

 

启动tomcat后访问:

http://127.0.0.1:8080/elecProject/services/systemDDLService?wsdl能看到服务信息了。  到此Axis2的WebService服务已成功发布。

看webservice的使用说明书,记住要从下向上看。

(1)

 

(2)

 

(3)

 

(4)

 

(5)

 

Axis2客户端调用:

下面看看利用axis2 客户端调用实例   

客户端程序需要的jar包

 

相关文章
|
14天前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
14天前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
14天前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
14天前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
14天前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
15天前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
15天前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
|
15天前
|
存储 Linux 网络安全
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
|
15天前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)