Myeclipse+Axis2+Tomcat开发webService
1、 下载文件:
需要在axis2官网下载两种类型的axis2文件,bin版和war版(下载地址:http://axis.apache.org/axis2/java/core/download.cgi),bin版中包含了开发所需的jar文件,而war则用于部署在%TOMCAT_HOME%\webapps\目录下。
eclipse-codegen和eclipse-service为安装myeclipse开发axis2所需要的插件文件(下载地址:http://archive.apache.org/dist/ws/axis2/tools/1_4_1/ )。
2、 把axis2-1.4.1-war.zip中的war文件复制到%TOMCAT_HOME%\webapps\目录下,启动tomcat,在地址栏访问:http://127.0.0.1:8080/axis2/,出现如下界面:
axis2安装成功。
3、 Myeclipse Axis2插件:分别解压
axis2-eclipse-codegen-wizard.zip 和 axis2-eclipse-service-archiver-wizard.zip两个文件到%ECLIPSE_HOME%\eclipse\plugins目录中。在%ECLIPSE_HOME\eclipse\links%目录下增加文件axis-eclipse-plugin.link并写入path=%ECLIPSE_HOME%\eclipse\plugins(不可直接复制,需要将对应的ECLIPSE_HOME更换为实际值)。重新启动myeclipse,在file->new->other中即可看到Axis2 Wizards,至此,axis2插件安装成功。
4、 插件存在bug,在利用codegen插件根据WSDL文件生成stub类时,会报An error occurred while completing process -java.lang.reflect.InvocationTargetException异常,为了解决此问题:从AXIS2的LIB库中复制
"geronimo-stax-api_1.0_spec-1.0.1.jar"和"backport-util-concurrent-3.1.jar"文件到Codegen的lib目录中,同时修改plugin.xml文件,添加
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
注意:由于已经将插件解压到了myeclipse的plugins目录,故需要修改plugins目录下对应文件中的插件数据。
5、 Demo:
a. 编写服务端用于作为webservice的类HelloDemo.java:
package com.hxl.webservice.service;
public class HelloDemo {
public String sayHello(String name) {
return "Hello"+name;
}
public String getResp() {
return "请求被响应";
}
}
b. 发布服务:右击src目录,选择New-other-Axis2 Wizards-Axis2 Service Archiver,点击next,选择class文件所在目录,例如:
点击next,选择Skip WSDL,点击next,此处为选择服务所需要的依赖包,此demo不需要,点击next,选中Generate the service xml automatically,让myeclipse自动生成services.xml,点击next,此处通过设定Service Name文本框设定服务名,Class Name选择需要发布为服务的类,点击next,Output file location用于设定配置服务的配置文件生成的路径,应为%TOMCAT_HOME%\webapps\axis2\WEB-INF\services目录,output File Name用于设定输出的配置文件的名称,点击Finish,至此service服务发布工作全部完成,访问:http://127.0.0.1:8080/axis2/services/listServices,即可查看刚发布的service。
c. 生成stub类:右击src目录,选择New-other-Axis2 Wizards-Axis2 Code Generator,点击next,选中Generate Java source code from a WSDLfile,点击next,WSDL file location输入框中输入刚刚发布的服务的wsdl地址:http://127.0.0.1:8080/axis2/services/MyService?wsdl,点击next,此处默认即可,默认会生成同步和异步调用的stub类,点击next,选中Browse and select a project on current eclipse workspace,在output path选择框中选择当前的项目,点击Finish,点击OK,刷新项目,会看到生成了java类,自此,所有stub生成工作已经完成。
d. 编写测试类:
package com.hxl.webservice.stub; import com.hxl.webservice.stub.MyServiceStub.GetRespResponse;
import com.hxl.webservice.stub.MyServiceStub.SayHelloResponse; public class MyCallBack extends MyServiceCallbackHandler { @Override
public void receiveResultgetResp(GetRespResponse result) {
System.out.println(result.local_return);
} @Override
public void receiveResultsayHello(SayHelloResponse result) {
System.out.println(result.local_return);
} }
package com.hxl.webservice.test;
import org.junit.Test; import com.hxl.webservice.stub.MyCallBack;
import com.hxl.webservice.stub.MyServiceStub; public class TestHelloDemo {
@Test
/**
* 测试同步getResp()方法
*/
public void testGetResp() throws Exception { MyServiceStub stub = new MyServiceStub();
MyServiceStub.GetResp gr = new MyServiceStub.GetResp();
System.out.println(stub.getResp(gr).get_return());
}
@Test
/**
* 测试同步sayHello()方法
*/
public void testSayHello() throws Exception { MyServiceStub stub = new MyServiceStub();
MyServiceStub.SayHello sh = new MyServiceStub.SayHello();
sh.setName(" hxl");
System.out.println(stub.sayHello(sh).get_return());
}
@Test
/**
* 异步测试两个方法
*/
public void testGetAyn() throws Exception {
MyServiceStub stub = new MyServiceStub();
MyServiceStub.GetResp gr = new MyServiceStub.GetResp();
stub.startgetResp(gr ,new MyCallBack());
MyServiceStub.SayHello sh = new MyServiceStub.SayHello();
sh.setName(" Darren!");
stub.startsayHello(sh, new MyCallBack());
System.out.println("异步调用");
System.in.read();
} }
Myeclipse+Axis2+Tomcat开发webService的更多相关文章
- Apache axis2 + Eclipse 开发 WebService
yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...
- MyEclipse配置Tomcat开发JavaWeb程序JSP以及Servlet
1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2).下载Tomcat 官网:http://tomcat.apache.org/ 我们选择8.0: http://tomca ...
- MyEclipse下XFire开发Webservice实例
XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml ) MyEclipse W ...
- javaWeb学习之运用myeclipse结合tomcat开发一些简单的jsp和service
servlet是什么? servlet是java服务器端编程.不同于我们之前写的一般的java应用程序,Servlet程序是运行在服务器上的,服务器有很多种.....现在只是用过 tomcat ...
- 基于Myeclipse+Axis2的WebService开发实录
最近开始学习了下在Myeclipse开发工具下基于WebSerivce的开发,下面将相关相关关键信息予以记录 Myeclipse的安装,本文以Myeclipse2014-blue为开发环境,相关配置执 ...
- myeclipse 10 +Axis2 1.62 开发WebService手记
由于临时需求,不得不用java来开发一个webservice,之前对java webservice一片空白.临时查资料,耗费近一天,终于搞定,效率是慢了点.呵呵. 首先 配置Tomcat 中WebSe ...
- axis2开发webservice之编写Axis2模块(Module)
axis2中的模块化开发.能够让开发者自由的加入自己所需的模块.提高开发效率,减少开发的难度. Axis2能够通过模块(Module)进行扩展. Axis2模块至少须要有两个类,这两个类分别实现了Mo ...
- axis2开发webservice接口入门到精通详解(转)
最近在开发接口,在网上发现了两篇不错的文章,给大家分享下: 第一篇: 一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: ...
- Axis2开发webservice详解
Axis2开发webservice详解 标签: javawebserviceAxis2 2015-08-10 10:58 1827人阅读 评论(0) 收藏 举报 分类: JAVA(275) 服务器 ...
随机推荐
- (7) 深入了解Java Class文件格式(六)
转载:http://blog.csdn.net/zhangjg_blog/article/details/21888943 经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, ...
- 怎么修改git提交过的内容
git修改历史提交 Git使用amend选项提供了最后一次commit的反悔.但是对于历史提交呢,就必须使用rebase了. git rebase -i HEAD~3 表示要修改当前版本的倒数第三 ...
- iOS - OC NSStream 文件流
前言 @interface NSStream : NSObject @interface NSOutputStream : NSStream 1.文件流的使用 NSString *filePath = ...
- 《K&R》里贯穿全书的代码
个人阅读<K&R>的感觉就是:前后内容联系特别紧密,前面的代码没有理解好到了后面就看不下去. 1.getline(char s[], int lim) 调用结果:往参数数组中读入字 ...
- golang strings
package main import s "strings" //别名 import ( "fmt" ) var p = fmt.Println func m ...
- transition&transform,CSS中过度和变形的设置
设置样式的过度效果transition-property: none/all; transition-duration:2s;运动时间,默认是0秒 transition-delay:0s; 延迟时间默 ...
- Evolutionary Computing: 4. Review
Resource:<Introduction to Evolutionary Computing> 1. What is an evolutionary algorithm? There ...
- 在centos6.5中安装zookeeper集群
简介 ZooKeeper服务器是用Java编写创建,它运行在JVM.所以需要使用JDK 6或更高版本,在这里就不说在centos安装jdk环境了,直接进入正题,我搭建的是 192.168.0.2, 1 ...
- AS3绘制扇形算法解析
网上有很多使用AS3画一个扇形的方法,但是却一个都没有解释这个函数是如何运作来画出扇形的,下面浅谈下我对这个函数的理解. 首先上代码,代码来自http://blog.csdn.net/weiming8 ...
- windows下面安装casperjs
因为需要 就学习了一下casperjs,CasperJS是一个开源的导航脚本处理和测试工具,基于PhantomJS(前端自动化测试工具)编写.由于casperjs对PhantomJS的依赖性,所以需要 ...