WebService使用axis2框架发布服务与获取服务

版权声明:本文为博主原创文章,版权归原作者小思所有,转载或者引用本文内容请注明来源及原作者,https://blog.csdn.net/zeal9s/ https://blog.csdn.net/zeal9s/article/details/83105461

发布服务

老版:使用jdk自带的wsimport开启@webservice注解
新版:使用axis2提供的插件发布服务

1.去apache官网下载Axis2,点击Projects
在这里插入图片描述
找到Axis2的产品,点击进去
在这里插入图片描述
在这里插入图片描述

选择你所需要下载的进行下载,我这几个全部下载了。
解压其中的后缀名为war的,然后复制其中的axis2.war(apache官方写好的管理发布服务的项目)
在这里插入图片描述

在这里插入图片描述
2.然后启动Tomcat服务(可以通过任务管理器和tomcat下的bin目录下的Tomcat8.exe程序启动)
启动之后,去浏览器地址栏输入访问它在这里插入图片描述

然后点击它的Services,可以看到此项目管理的服务类和方法,等下我们自己发布的服务会出现在Services里面。

前面两篇博客WebService都是使用jdk下面的wsimport.exe命令,发布项目的,现在使用axis2提供的插件发布服务。

3.安装axis提供的代码自动生成插件和发布服务的插件
在这里插入图片描述
解压在两个文件夹,将里面的的两个jar包复制到eclipse的安装目录下的
在这里插入图片描述
文件下
在这里插入图片描述
4.然后重启eclipse,插件安装完成
我们利用这两个插件帮助我们自身发布服务和使用第三方服务。
cctrl+n查看插件是否安装成功
在这里插入图片描述
5.找到我们需要发布服务的项目
和使用jdk的wsimport命令不一样的是,服务类不用启用@webservice注解
直接ctrl+n,点击它

在这里插入图片描述

选择需要发布的项目的存在路径,bin文件夹下是已经编译好的class文件src下的是源文件。

在这里插入图片描述
然后点击next,跳过wsdl文件(因为服务还没有发布,所以不存在有它的wsdl文件)
在这里插入图片描述
点击next
在这里插入图片描述
写好服务的名称和服务类的路径
在这里插入图片描述

点击next

在这里插入图片描述
服务类生成服务成功!
在这里插入图片描述

6.去刚刚选择输出的文件路径查看是否有该文件

在这里插入图片描述

7.然后重启tomcat
然后地址栏重新访问http://localhost:8080/axis2/项目
会发现和起始的项目有些不同,多出服务类的东西
在这里插入图片描述
会发现和使用jdk自带的wsimport生成的wsdl文件,一摸一样
在这里插入图片描述
我们重新捋一下顺序:
将axis2提供的管理服务的项目复制到tomcat的webapps—>然后装插件----->将需要发布的服务的项目提交到插件中---->由插件生成服务类的wsdl的代码

调用服务

1.新建一个Java项目
选中ctrl+n
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点next
在这里插入图片描述
在这里插入图片描述
2.第三方服务类生成成功,刷新WebService_client项目。
发现项目报错,是因为关于Axis2的jar包没有拷到项目中来
然后在项目新建一个lib文件夹,把这个目录下的Jar包考进去,并且导入到项目中去
在这里插入图片描述
小贴士:按住shift从起始位置到最后一个jar包,复制
在这里插入图片描述
然后项目就不报错了

3.测试获取服务端数据
新建一个TestWsdl.java

package com.server.webservice;

import org.apache.axis2.AxisFault;

/**
 * 
* @ClassName: TestWsdl
* @Description:测试获取服务数据的类
* @author 小思
* @date 2018年10月17日 下午10:13:21
*
 */
public class TestWsdl {
	public static void main(String[] args){
		//服务类的实现类
		try {
			IDCARDServiceStub idcardServiceStub=new IDCARDServiceStub();
		    Test test=new Test();
		    test.setName("严");
		    //方法的执行之后的响应
			TestResponse test2 = idcardServiceStub.test(test);
			//获取返回的数据
			String get_return = test2.get_return();
			System.out.println(get_return);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

猜你喜欢

转载自blog.csdn.net/zeal9s/article/details/83105461