iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用axis开发webservice
  • 699
分享到

如何使用axis开发webservice

2023-06-17 12:06:45 699人浏览 独家记忆
摘要

小编给大家分享一下如何使用axis开发WEBservice,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!preparation:说明:相关的可能要了解SOAP(简

小编给大家分享一下如何使用axis开发WEBservice,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

preparation:

说明:相关的可能要了解SOAP(简单对象访问协议)、WSDL(web服务描述语言)、XML(可扩展标记语言)、axis(阿帕奇可扩展交互系统)等相关知识。

下载axis的jar包,请到apache官网或者在百度自行下载,然后导入jar包,不清楚的话导入所有的jar包就好了。(本人用的是axis1的版本,因为项目中用的是axis1的版本)

webservice客户端生成工具genclient.bat(后面会对这个工具做一个简单的说明)

之前介绍没有说明本机的环境,现在把本机环境罗列一下:

系统:XP  myeclipse:6.5  tomcat:5.X  JDK:1.5

生成webservice的方式有XFire、Jax-WS、axis等,使用axis调用webservi有三种方式:动态调用接口、使用动态代理Dynamic Proxy、使用从WSDL生成的存根generated Stubs from Service WSDL description,由于本人工作中使用的是axis,调用webservice的方式用到的有动态调用接口、使用从WSDL生成的存根generated Stubs from Service WSDL description,故本节只介绍用axis调用webservice的这两种方式。后续的拓展部分根据需要再说。

start:

***步:服务器端的开发

(1)开发java文件

代码如下:

接口文件:IBbossGroupInfoService.java

package com.asiainfo.b2p.soap.interfaces;     import java.rmi.RemoteException;  public interface IBbossGroupInfoService {        // 根据集团编号查询集团基本信息            public abstract String groupInfo(long groupNo) throws Exception,              RemoteException;       // 根据集团编号查询集团订购历史      public abstract String groupSubHistoryInfo(long groupNo) throws Exception;  }

实现类:IBbossGroupInfoServiceImpl.java

package com.asiainfo.b2p.soap.impl;  import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.asiainfo.b2p.soap.interfaces.IBbossGroupInfoService;   public class IBbossGroupInfoServiceImpl implements IBbossGroupInfoService {     private static transient Log log = LogFactory             .getLog(IBbossGroupInfoServiceImpl.class);       // 根据集团编号查询集团基本信息     public String groupInfo(long groupNo) throws Exception, RemoteException {         log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>集团编号=" + groupNo);         //方法体我省略了,为了测试我仅加入一句打印语句         System.out.println("我是一个公共的方法,作用是根据集团编号查询集团基本信息");         String xml="<message>public_groupInfo</message>";//为了测试,返回的信息我也是随便写的一个字符串         return xml;     }      // 根据集团编号查询集团订购历史     public String groupSubHistoryInfo(long groupNo) throws Exception {          log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>集团编号=" + groupNo);         //方法体我省略了,为了测试我仅加入一句打印语句         System.out.println("我是一个公共的方法,作用是根据集团编号查询集团订购历史");         String xml="<message>public_groupSubHistoryInfo</message>";//为了测试,返回的信息我也是随便写的一个字符串         return xml;     } }

说明:为了更加的接近实际的开发,这个是本机上运行的程序,实现的功能是通过一个编号查询相关信息拼成一个字符串,方法体的部分我删除了,你需要用这个代码的话,直接拷贝修改包名称就可以直接用了。

(2)wsdd文件

wsdd文件只需加入一列几行(前提是你之前已经有wsdd文件了,没有的话可以在下载的apache的demo中拷贝一个):

<service name="GroupInfoService" type=""  provider="java:rpc"> <parameter name="className" value="com.asiainfo.b2p.soap.impl.IBbossGroupInfoServiceImpl" ></parameter> <parameter name="allowedMethods" value="*"/> </service>

这个文件放在项目的WEB-INF下面。<service>标签的name属性是发布的webservice的名称,可以自己命名,***个<parameter>标签的value属性指定实现类的完整路径,包括类名。其他的地方默认就好。
(3)配置web.xml文件

<servlet>   <servlet-name>AxisServlet</servlet-name>   <display-name>Apache-Axis Servlet</display-name>   <servlet-class>org.apache.axis.transport.Http.AxisServlet</servlet-class> </servlet> <servlet-mapping>   <servlet-name>AxisServlet</servlet-name>   <url-pattern>/services     public static void test1() {         try {             // 1.创建service对象,通过axis自带的类创建             org.apache.axis.client.Service service = new org.apache.axis.client.Service();              // 2.创建url对象             String wsdlUrl = "http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl";//请求服务的URL             URL url = new URL(wsdlUrl);//通过URL类的构造方法传入wsdlUrl地址创建URL对象  // 2.创建服务方法的调用者对象call,设置call对象的属性             Call call = (Call) service.createCall();             call.setTargetEndpointAddress(url);//给call对象设置请求的URL属性             String serviceName = "groupInfo";             call.setOperationName(serviceName);//给call对象设置调用方法名属性             call.addParameter("groupNo", XMLType.XSD_LONG, ParameterMode.IN);// 给call对象设置方法的参数名、参数类型、参数模式             call.setReturnType(XMLType.SOAP_STRING);// 设置调用方法的返回值类型  //4.通过invoke方法调用webservice             long groupNo = 2100000014L;             String res = (String) call.invoke(new Object[] { groupNo });//调用服务方法             System.out.println(res);         } catch (MalfORMedURLException e) {             e.printStackTrace();         } catch (ServiceException e) {             e.printStackTrace();         } catch (RemoteException e) {             e.printStackTrace();         }     }      public static void main(String[] args) {         test1();     } }

代码中的注释很详细,我就不介绍了。

(2).使用从WSDL生成的存根generated Stubs from Service WSDL description

***步:配置genclient.bat文件

右键单击“编辑”打开bat文件如下(为了便于说明,每行的意思我就直接写在后面了):

set Axis_Lib=E:\esop\lib -----指定工程的lib目录set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% -----默认set Output_Path=E:\esop\src -----指定工程的src目录set Package=com.asiainfo.maks.webservices.pbosswebclient -----指定生成的四个文件的存放位置%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% ----- 默认http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl -----指定wsdl文件的路径

用genclient.bat生成四个客户端类

双击编译好的bat文件,执行后生成的四个java类如下:

如何使用axis开发webservice

写测试类调用webservice

package test.webserviceclient;  import java.net.MalformedURLException; import java.net.URL; import java.rmi.RemoteException; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.encoding.XMLType;  public class Test {          public static void test1() {         // 1.创建一个service对象         IBbossGroupInfoServiceImplService service = new IBbossGroupInfoServiceImplServiceLocator();          try {             // 2.创建一个URL对象,传入wsdl的地址够过URL的构造方法创建             String wsdlUrl = "http://10.10.146.82:8080/esop_dev/services/GroupInfoService?wsdl";             URL url = new URL(wsdlUrl);              // 3创建一个client对象             IBbossGroupInfoServiceImpl client = service                     .getGroupInfoService(url);              // 4调用webservice的方法             long groupNo = 2100000014L;             String res = client.groupInfo(groupNo);              System.out.println(res);          } catch (MalformedURLException e) {             e.printStackTrace();         } catch (ServiceException e) {             e.printStackTrace();         } catch (RemoteException e) {             e.printStackTrace();         }      }      public static void main(String[] args) {         test1();     } }

以上是“如何使用axis开发webservice”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何使用axis开发webservice

本文链接: https://www.lsjlt.com/news/288868.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用axis开发webservice
    小编给大家分享一下如何使用axis开发webservice,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!preparation:说明:相关的可能要了解SOAP(简...
    99+
    2023-06-17
  • SpringBoot如何使用axis调用webservice接口
    本篇内容介绍了“SpringBoot如何使用axis调用webservice接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!WebServ...
    99+
    2023-07-02
  • 如何使用axis调用WebService及Java WebService调用工具类
    目录WebService 简介概述使用 axis 调用 WebService引入依赖WebService 调用工具类总结WebService 简介 概述 能使得运行在不同机器上的不同...
    99+
    2023-05-17
    axis调用webservice接口 java webservice接口调用方式 webservice如何调用
  • 详谈cxf和axis两种框架下的webservice客户端开发
    目录第一种:基于cxf的客户端开发1.引入依赖 pom.xml2.cxf和axis都没有spring配置第二种:基于axis框架的客户端开发一个客户端和服务端底层传输数据的了解客户端...
    99+
    2024-04-02
  • 应用Python开发WebService
    Why 得益于Python领域广泛的功能包,使用Python来开发WebService,实现服务端或客户端,是比较快捷的途径。最近项目上恰巧遇到一个问题,内外系统分别作为客户端与服务端,接口功能已基本确定,但目前双方项目进度不统一...
    99+
    2023-01-31
    Python WebService
  • SpringBoot项目使用 axis 调用webservice接口的实践记录
    目录序WebService定义个人理解实践webservice 常识一个webservice 接口发布地址往往类似:qq在线接口验证接口为例maven 使用 axis应用依赖(不可缺...
    99+
    2024-04-02
  • C# WebService如何发布与调用
    这篇文章主要为大家展示了“C# WebService如何发布与调用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C# WebService如何发布与调用”这篇文章吧。Web Service是可操...
    99+
    2023-06-18
  • C#中如何使用HttpPost调用WebService
    这篇文章主要介绍了C#中如何使用HttpPost调用WebService,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。WebService服务端代码public c...
    99+
    2023-06-29
  • ASP.NET Core如何使用HttpClient调用WebService
    本文小编为大家详细介绍“ASP.NET Core如何使用HttpClient调用WebService”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core如何使用HttpClient调用WebServi...
    99+
    2023-06-29
  • 如何在PHP中使用WebService接口
    这篇文章将为大家详细讲解有关如何在PHP中使用WebService接口,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP...
    99+
    2023-06-14
  • 如何使用nodejs开发
    随着技术的不断发展,许多开发者都开始使用 Node.js 来进行 Web 开发。Node.js 是一个由 C 语言编写的 JavaScript 运行时环境,它可以让开发者使用 JavaScript 来进行服务器端编程。Node.js 和其他...
    99+
    2023-05-23
  • 如何使用JDK1.6的JAX-WS编写WebService
    这篇文章将为大家详细讲解有关如何使用JDK1.6的JAX-WS编写WebService,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Web services概念Web services是客户端和服务端...
    99+
    2023-06-17
  • 如何调用webservice接口
    如何调用webservice接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。调用方法:首先选中“项目”选项卡,点击鼠标右键,在弹出的右键菜单中选择“new”-“other...
    99+
    2023-06-20
  • c开发如何使用redis
    c开发使用redis的示例:在linux下使用hiredis接口,hiredis是redis数据库的C接口,代码:#include "hiredis.h"#define NO_QFORKIMPL#pragma comment(lib,"hi...
    99+
    2024-04-02
  • Java WebService开源框架CXF怎么使用
    使用CXF框架开发Java WebService可以按照以下步骤进行:1. 配置CXF框架:下载CXF框架的最新版本,解压后将CXF...
    99+
    2023-08-08
    Java CXF
  • 如何使用AJAX返回WebService里的集合
    这篇文章主要介绍“如何使用AJAX返回WebService里的集合”,在日常操作中,相信很多人在如何使用AJAX返回WebService里的集合问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • 如何使用Python开发App
    要使用Python开发App,可以按照以下步骤进行:1. 确保已安装Python:在开始开发App之前,必须确保已经在计算机上安装了...
    99+
    2023-08-28
    Python
  • redis开发中如何使用
    在Redis开发中,可以使用Redis的命令和数据结构来进行操作和存储数据。下面是一些常用的Redis开发用法:1. 字符串操作:-...
    99+
    2023-08-24
    redis
  • webservice接口如何调用
    调用webservice接口需要以下步骤:1. 确定webservice的地址:通过查看webservice的文档或联系webser...
    99+
    2023-08-22
    webservice
  • 如何使用Go开发并发程序
    这篇文章主要介绍如何使用Go开发并发程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们都知道计算机的核心为 CPU,它是计算机的运算和控制核心,承载了所有的计算任务。最近半个世纪...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作