发布服务

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

1.去apache官网下载Axis2,点击Projects
WebService使用axis2框架发布服务与获取服务
找到Axis2的产品,点击进去
WebService使用axis2框架发布服务与获取服务
WebService使用axis2框架发布服务与获取服务

选择你所需要下载的进行下载,我这几个全部下载了。
解压其中的后缀名为war的,然后复制其中的axis2.war(apache官方写好的管理发布服务的项目)
WebService使用axis2框架发布服务与获取服务

WebService使用axis2框架发布服务与获取服务
2.然后启动Tomcat服务(可以通过任务管理器和tomcat下的bin目录下的Tomcat8.exe程序启动)
启动之后,去浏览器地址栏输入访问它WebService使用axis2框架发布服务与获取服务

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

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

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

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

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

WebService使用axis2框架发布服务与获取服务
然后点击next,跳过wsdl文件(因为服务还没有发布,所以不存在有它的wsdl文件)
WebService使用axis2框架发布服务与获取服务
点击next
WebService使用axis2框架发布服务与获取服务
写好服务的名称和服务类的路径
WebService使用axis2框架发布服务与获取服务

点击next

WebService使用axis2框架发布服务与获取服务
服务类生成服务成功!
WebService使用axis2框架发布服务与获取服务

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

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

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

调用服务

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

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();
		}
		
	}

}

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

相关文章: