加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

exlipce mar 创建一个rest风格的webService项目(axis2)

发布时间:2020-12-16 22:39:53 所属栏目:安全 来源:网络整理
导读:跨平台发布web Service 一般使用axis2,如果不跨平台则使用apache CXF创建web Service较好,下面我将一次介绍通过axis2创建和发布web service的详细 由于截图之前有网友反映不能查看,所以本文全用文字描述,未知之处,请留言或指出。 详细以及注意事项如下:

跨平台发布web Service 一般使用axis2,如果不跨平台则使用apache CXF创建web Service较好,下面我将一次介绍通过axis2创建和发布web service的详细

由于截图之前有网友反映不能查看,所以本文全用文字描述,未知之处,请留言或指出。

详细以及注意事项如下:

第一种发布方式:通过axis2.war发布Webservice(实质是通过axis2工具将webService生成**.aar文件):

一、下载(1)axis2-1.6.3-bin.zip(解压文件,作为与eclipse配置的文件)

? ? ? ? ?网址:http://axis.apache.org/axis2/java/core/download.cgi

? ? ? ? ? ? ? ? (2)axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-service-plugin-1.6.2.zip(解压2文件后把 ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ??org.apache.axis2.eclipse.codegen.plugin_1.6.2.jar和org.apache.axis2.eclipse.service.plugin_1.6.2.jar

? ? ? ? ? ? ? ? 放到eclipse的安装目录,E:eclipsedropins文件夹下)

网址:http://axis.apache.org/axis2/java/core/tools/index.html

二、将eclipse与axis2-1.6.3-bin插件集成

(1)在Eclipse的菜单栏中,Window --> Preferences --> Web Services--> Axis2?Perferences,

? ? ? ? ? ? 在Axis2 runtime location中选择Axis2解压缩包的位置,设置好后,点"OK"即行。

三、下载axis2.war(该包放在tomcat---->webapps下),这是核心

四、开始创建项目

在eclipse中新建一个Dynamic web project项目,接口名字尽量简单和规范(接口名规范,非常有用!)

五、生成.aar文件到tomcat的webappsaxis2WEB_INFservices下

(1)wordspace工作区下,单击右键,新建other---->选择Axis2 Wizards ---->Axis2 Service Archiver ---->next

(2)到Service Archiver时,注意class File Location 只能选择到buildclasses目录(如F:eclipse_marWebServiceTestbuildclasses)


(3)继续next,直到Server Archiver ?Generate the Service XML file?

在service name 和 Class name 后面输入对应的名字。注意:Service name是指发布成功后访问的名称

?如http://localhost:8080/axis2/services/ITestService?wsdl红色字体,而Class name则必须填入接口的全路径!

? ? ? ? ?如:com.interfaces.ITestService ,点击Load 加载成功后即可看到本窗口中的接口中的方法和参数类型!表名已经加载成功!


? (4)下一步,将看到:OUtput file location 和 Output file name ,选择导出路径,一般就导出放在 tomcatwebappsaxis2WEB-INFservices下

这样方便马上测试,而name可以任意取(只要符合命名规范即可)

点击finish,则生成.aar文件成功!

(5)start--tomcat--访问刚刚发布的webService,在地址栏输入http://localhost:8080/axis2/services/ITestService?wsdl,即可看见生成的wsdl文件


注意:以上的方式是发布到axis2.war包中,当然我们也可以把生成.aar文件copy到实际应用中;

? ? ? ? ?同时,也可以使用eclipsecreate?webservice功能发布我们的webservice,选择axis2生成我们的

? ? ? ? ?这样就会部署到我们的应用中了。

以上开发环境:

windows 7 64位 +tomcat 7 64位+jdk1.6 32位 +eclipse mar(最新版本)+axis2.war最新版+axis2.1.6.3.bin最新版+axis2两个插件

可能不同版本使用会有差异。

第二种发布方式:是通过生成wsdl文件后,将该项目生成war包,放在tomcat,webapps下

一、新建一个Dynamic web Project工程

注意:需要选择版本是Dynamic web ?module ?version 为2.5,否则在生成wsdl文件时会报错误!

二、在该工程src目录下新建com.test.interfaces和com.test.implement包

interfaces中存放接口类-----》ITestService.java :方法testService,参数String 和int,返回值类型String

implement中存放实现类---->ITestServiceImpl.java?

三、完成二以后

点中ITestServiceImpl.java?,单击右键-----》选择web Services----->选择create web Service,然后选择对应的实现类

? ? ? ?注意:(1)web service type ?选择是 Bottom up java Bean Web Service

? ? ? ? ? ? ? ? ? ? (2)service implementation 一定是当前项目下的当前实现类全路径!如果有其它项目打开,那么需要仔细核对是否为当前项目的实现类

? ? ?点击next,进入下一步

四、选择wsdl文件

点击下拉箭头,选择当前(单击右键的类名)想要生成的wsdl文件

五、点击finish即可

六、发布webService

在发布之前,需要先检查该文件是否能正确使用!

步骤:1、找到刚刚生成的wsdl文件,相对项目目录为/WebContent/wsdl/ITestAxis2Impl.wsdl

? ? 2、点击右键--》点击web services---->选择Test with web service Explorer

? ?3、选择实现类ITestAxis2Impl,在对应的String 和 int 类型(由于我的接口中是两个参数String 和int类型)中输入值,点击Go

? ?4、执行3步骤后,在页面的status状态栏中将会出现调用接口方法后的执行结果,如果有返回应该有的结果,那么web Service创建成功!

? ? ? ? 开始发布web Service,点击项目名,然后右键export---->输入web---》选择WAR file

------>下一步,选择需要打包的项目名和war包的生成路径(一般直接选择tomcat/webapps目录,也可以选择其他目录)

七、执行以上步骤后,发布就已成功。


八、测试刚刚发布的webService

新建一个java Project(注意:此处不是Dynamic web Project),新建lib文件夹用于存放6个架包

? ? ? ? axis.jar、commons-discovery-0.2.jar、commons-logging.jar、jaxrpc.jar、saaj.jar、wsdl4j.jar(这6个架包可以从刚刚生成的web Service中复制,相对目录:/WebContent/WEB-INF/lib)

在src下新建TestAxis2.java文件,代码如下:

package com.test;
import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.junit.Test;

public class TestAxis2 {
public ?String invokeTest(){
//远程调用路径
String endpoint="http://localhost:8080/Axis2WebserviceTest3/services/ITestAxis2Impl"; //测试通过打成war包,放在tomcat ---webapps下发布
// ? ? ? ? ? ? ? ? ? ? ?
? ??Axis2WebserviceTest3是项目名称) ? ? ? ? ? ? ? ? ? (ITestAxis2Impl实现类名而非接口名称)
String result="call failed!";
Service service=new Service();
Call call;
try{
call=(Call)service.createCall();
call.setTargetEndpointAddress(endpoint);
//调用方法名,实际上是实现类中的方法名
call.setOperationName("iTestAxis2");
//设置参数名
call.addParameter("str",? ?//接口中的参数名
XMLType.XSD_STRING,//该参数类型
ParameterMode.IN ? ?//参数模式,out in
);
call.addParameter("m",
XMLType.XSD_INT,
ParameterMode.IN
);
//设置返回值类型
call.setReturnType(XMLType.XSD_STRING);
String str="dsadjk";
int m=7;
result=(String) call.invoke(new Object[]{str,m});
}catch(Exception e){
e.printStackTrace();
}
return result;
}
@Test
public void testAxis2(){
String ss=invokeTest();
System.out.println(ss);
}
}

测试成功后,eclipse控制台会打印接口返回值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读