文档库 最新最全的文档下载
当前位置:文档库 › AXIS框架搭建webservice简易教程

AXIS框架搭建webservice简易教程

AXIS框架搭建webservice简易教程
AXIS框架搭建webservice简易教程

AXIS框架搭建webservice简易教程

1.1 Axis介绍

Axis(A pache e X tendsible I nteraction S ystem 的缩写) 是一款开源的WebService运行引擎,它是SOAP协议的一个实现,其本身来源于Apache的另一个项目Apache SOAP.Axis分为1.x和2.x两个系列

1.2 Axis 安装

1) 下载Axis---axis-bin-1_4.zip---https://www.wendangku.net/doc/384732309.html,/dyn/closer.cgi/ws/axis/1_4

axis-bin-1_4.zip目录内容

docs:说明文档

lib: Axis用到的所有jar包

samples: 示例代码

webapps: Axis的web应用程序

xmls:说明文档

2) 解压axis-bin-1_4.zip,将其中的webapps下的axis 复制到tomcat的webapps目录下,本文介绍使用的服务器为

tomcat6.0

3) 检测Axis是否安装成功,在浏览器中输入:http://localhost:8080/axis,如果页面显示如下图说明安装成功

4) 检查Axis是否缺少组件,点击页页上的Validation 链接,跳转后出现如下页面,看页面中的needed components 必须安装的列表中是否有链接,如果有链接则是缺少的组件,这个地方的组件是必须安装的,Optional components是可选组件,可装可不装,安装缺少的组件只要点击页面上的链接,到跳转到的网页上下载其发布包就可以了,下载后将其压缩包内的Action.jar,mail.jar,xmlsec-xxx.jar,xalan.jar放到axis的lib目录下即可,安装完所有的组件如下面第二张图

致此安装准备工作就完成了,接下来就可以使用Axis 进行WebService 的开发了

1.3 Axis 开发WebService

1.3.1 Axis 的发布方式

1) 即时发布(Instant Deployment),jws 文件形式的

2) 定制发布(Custom Deployment),wsdd 形式的

1.3.2 即时发布(Instant Deployment)

即时发布操作比较简单,编写好java 类后,将其后缀名改为.jws ,然后复制到Axis 的目录中就发布完成了 比如有个HelloService.java 的类文件,首先将其改为HelloService.jws,然后把它放到Axis 的根目录中,例如:

E:\apache-tomcat-6.0.20\webapps\axis\HelloService.jws,这就是发布时的完整路径,盘符和tomcat 的路径根据自 己的来设置就可以了

注:使用jws 发布所编写的类不能打包

代码示例:

服务端:

//package com.service; //请不要写类似的代码,否则将发布失败

/**

* 使用jws 方式发布WebService

* @author Administrator

*

*/

public class TestService {

/**

* 加法运算

* @param x

* @param y

* @return结果

*/

public String add(int x,int y) {

return x+" + "+y+" = "+(x+y);

}

/**

* 问候语

* @param name

* @return

*/

public String sayHello(String name) {

return"你好: "+name;

}

}

把TestService类文件复制到%TOMCAT_HOME%webapps/axis/目录下,启动tomcat服务器,打开浏览器输入地址

http://localhost:8080/axis/TestService.jws,如果出现Click to see the WSDL 的链接说明此WebService 发成功,如下图

点击链接会出现一个xml格式的内容,接下来编写客户端

客户端:

package com.client;

import java.rmi.RemoteException;

import https://www.wendangku.net/doc/384732309.html,space.QName;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class HelloClient {

/**

* @param args

*/

public static void main(String[] args) {

/**

* 访问webservice的url地址即webservice的命名空间

* 组成:Axis的访问地址+发布的类名.jws

*

*/

String url = "http://localhost:8080/axis/TestService.jws";

Service s = new Service(); //创建服务对象

try {

/**

* 从服务对象中获取客户端对象,返回的是javax.xml.rpc.Call实例

* 我们接收的是org.apache.axis.client.Call

* 而org.apache.axis.client.Call是javax.xml.rpc.Call的一个子类

* 所以要向下竖形

*/

Call call = (Call) s.createCall();

call.setTargetEndpointAddress(url);//设置连接点

/**

* 设置要调用的方法

* setOperationName的参数是https://www.wendangku.net/doc/384732309.html,space.QName实例

* 创建https://www.wendangku.net/doc/384732309.html,space.QName实例,第一个参数是webservice的url

* 第二个对数是你调用的webservice方法名

*/

call.setOperationName(new QName(url,"sayHello"));

/**

* 利用java的返射机制进行方法调用

* invoke方法有不同参数的,下面的是代表传递给webservice方法的参数,

* 如果参数为空传new Object[]{},不能传null,因为参数是一个object数组

* 输出:你好:小王

*/

System.out.println(call.invoke(new Object[]{"小王"}));

/**

* 相当于setOperationName+invoke

* 输出:2 + 3 = 5

*/

System.out.println(call.invoke(new QName(url,"add"), new Object[]{2,3}));

/**

* 直接使用命名空间+调用的方法名+参数

* * 输出:3 + 4 = 7

*/

System.out.println(call.invoke(url, "add", new Object[]{3,4}));//就介绍这几种,其它如果用到自己研究下吧

} catch (ServiceException e) {

e.printStackTrace();

} catch (RemoteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

在实际工作中,我们所写的类不带包的很少很少,如果有包则此种方法就无能为力了,只能用定制发布

1.3.3 定制发布(Custom Deployment) ------WSDD

定制发布需要编写一个WSDD(Web Service Deployment Descriptor),是一个xml文件,主要用来描述发布信息

WSDD文件内容:

xmlns:java="https://www.wendangku.net/doc/384732309.html,/axis/wsdd/providers/java">

编写完后将其复制到axis的WEB-INF目录下,%TOMECAT_HOME%webapps/axis/WEB-INF/

服务端:

package com.service; //定制方式发布可以打包

/**

* 使用wsdd方式发布WebService

* @author Administrator

*

*/

public class TestService {

/**

* 加法运算

* @param x

* @param y

* @return结果

*/

public String add(int x,int y) {

return x+" + "+y+" = "+(x+y);

}

/**

* 问候语

* @param name

* @return

*/

public String sayHello(String name) {

return"你好: "+name;

}

}

这个服务端类与jws的服务端类内容是一样的,只是这个打包了,将TestService类编译生成其.class文件,把类的整个包复制Axis的class目录下,TestService复制后的路径是:%TOMCAT_HOME%webapps/axis/WEB-INF/class/com/service/TestService.class

使用axis提供的客户端布署工具进行发布操作:打开cmd->进入到axis的WEB-INF目录%TOMCAT_HOME%webapps/axis/WEB-INF

进入目录后输入:java –Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd回车

客户端:

调用代码与jws 方式基本一样,只是url不同,请注意观察

package com.client;

import java.rmi.RemoteException;

import https://www.wendangku.net/doc/384732309.html,space.QName;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class HelloClient {

/**

* @param args

*/

public static void main(String[] args) {

/**

* 访问webservice的url地址即webservice的命名空间

* 组成:Axis的访问地址+services+发布的webservice名

*

*/

String url = "http://localhost:8080/axis/services/TestService";

Service s = new Service(); //创建服务对象

try {

/**

* 从服务对象中获取客户端对象,返回的是javax.xml.rpc.Call实例

* 我们接收的是org.apache.axis.client.Call

* 而org.apache.axis.client.Call是javax.xml.rpc.Call的一个子类

* 所以要向下竖形

*/

Call call = (Call) s.createCall();

call.setTargetEndpointAddress(url);//设置连接点

/**

* 设置要调用的方法

* setOperationName的参数是https://www.wendangku.net/doc/384732309.html,space.QName实例

* 创建https://www.wendangku.net/doc/384732309.html,space.QName实例,第一个参数是webservice的url

* 第二个对数是你调用的webservice方法名

*/

call.setOperationName(new QName(url,"sayHello"));

/**

* 利用java的返射机制进行方法调用

* invoke方法有不同参数的,下面的是代表传递给webservice方法的参数,

* 如果参数为空传new Object[]{},不能传null,因为参数是一个object数组

*/

System.out.println(call.invoke(new Object[]{"小王"}));

/**

* 相当于setOperationName+invoke

*/

System.out.println(call.invoke(new QName(url,"add"), new Object[]{2,3}));

/**

* 直接使用命名空间+调用的方法名+参数

*/

System.out.println(call.invoke(url, "add", new Object[]{3,4}));//就介绍这几种,其它如果用到自己研究下吧

} catch (ServiceException e) {

e.printStackTrace();

} catch (RemoteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

同样可以通过浏览器输入http://localhost:8080/axis/services/TestService?wsdl查看wsdl文件

1.3.4 取消发布的WebService

取消已发布的webservice,编写wsdd文件,undeploy.wsdd

文件内容:

固定的

要取消的webservice名

打开cmd->进入到axis的WEB-INF目录%TOMCAT_HOME%webapps/axis/WEB-INF

进入目录后输入:java –Djava.ext.dirs=lib org.apache.axis.client.AdminClient undeploy.wsdd 回车

取消发布与发布只是wsdd文件名不同,使用的命令是一样的

至此使用axis手工编写和发布webservice就结束了,也可以使用eclipse生成wsdd文件,然后将生成的deploy.wsdd,server-config.wsdd文件复制到axis的WEB-INF目录下,%TOMECAT_HOME%webapps/axis/WEB-INF/目录下,在将.class文件放到axis的classes目录下即可

1.4 使用Eclipse生成WSDD文件

CXF WebService中传递复杂对象(List、Map、Array)

CXF WebService中传递复杂对象 前面一篇文章介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。 如有不正确之处,请各位给予指出! 1、首先看看服务器端的代码所需要的JavaBean对象 Java代码 1.package com.wy.object.entry; 2. 3.import java.io.Serializable; 4. 5./** 6.* User Entity 7.* @author Administrator 8.* 9.*/ 10.public class User implements Serializable { 11. 12.private static final long serialVersionUID = 1L; 13. 14.private int id; 15.private String name; 16.private String email; 17.private String address; 18. 19.public int getId() { 20.return id; 21.} 22. 23.public void setId(int id) { 24.this.id = id; 25.} 26. 27.public String getName() { 28.return name; 29.} 30. 31.public void setName(String name) { https://www.wendangku.net/doc/384732309.html, = name; 33.}

34. 35.public String getEmail() { 36.return email; 37.} 38. 39.public void setEmail(String email) { 40.this.email = email; 41.} 42. 43.public String getAddress() { 44.return address; 45.} 46. 47.public void setAddress(String address) { 48.this.address = address; 49.} 50. 51.@Override 52.public String toString() { 53. 54.return this.id + " - " + https://www.wendangku.net/doc/384732309.html, + " - " + this.address + " - " 55.+ this.email; 56. 57.} 58.} 下面的是集合传递Users,CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知道是什么原因。 Java代码 1.package com.wy.object; 2. 3.import java.util.HashMap; 4.import java.util.List; 5. 6.import https://www.wendangku.net/doc/384732309.html,er; 7. 8./** 9.* CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知 道是什么原因? 10.* 11.* @author Administrator 12.* 13.*/

EBS中发布WEBSERVICE接口的方法

在Oracle EBS二次开发中,PL/SQL程序是开发人员使用频率最高的开发语言,同时也是大家最容易掌握的工具之一了,而我们也很希望将自己编写的PL/SQL 程序发布为Web服务来提供给客户端程序使用,同时也可以实现和外围系统的集成,有了irep_parser这个工具,我们就可以将自己编写的PL/SQL 程序发布到Oracle Integration Repositoy中。Oracle Integration Repositoy中集成接口的来源都是Oracle,客户化的程序发布上去的为Custom: 下面描述如何将PL/SQL程序接口发布到Oracle Integration Repositoy中作为集成接口供第三方程序集成调用 一、给EBS系统打补丁 参考如下安装文档: 安装文档.docx 二、添加客户化应用到Product Family 客户化应用设置好之后,它没有归属于任何的产品家族,如我的客户化应用CUX,因此发布在客户化应用下的集成接口在Oracle Integration Repositoy中无法方便的查看,如下图:

如果客户化集成接口是组织到自己的应用下就需要先注册一个产品家族,下面将CUX Developer(CUX) 应用注册到CUX Developer(cux_pf)这个产品家族下作为例子进行演示: 1,添加产品家族 CUX Developer(cux_pf) --添加产品家族 begin -- Call the procedure ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation => 'cux_pf', x_pseudo_product_flag => 'N', x_product_family_flag => 'Y', x_application_short_name => NULL, x_product_name => 'CUX Developer', x_product_family_abbreviation => NULL, x_product_family_name => NULL, x_aru_update_date => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_currdate => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_last_updated_by => -1, x_created_by => -1); COMMIT; end; 2,注册CUX Developer(CUX)应用到产品家族中

eclipse创建webservice的两种方法

在eclipse 中创建webservice项目 方法一:使用xfire支持 1.创建Dynamic Web Project 项目: 2.将编译路径改为项目/web-INF/classes; 3.将META-INF 文件夹移动到src下面,并在META-INF 中创建xfire文件夹,文件夹内放入services.xml文件; 4.添加xfire支持的jar包:

5.编写web.xml: 7.编写services.xml

可以存在多个service; 8.访问http://localhost:port/projectName/services/url-pattern?wsdl(蓝色字体均为相应的内容);方法二:使用Axis2支持 1.1Axis2发行包 Axis2以多个发行包发行。你需要哪个视你所需决定。 1.1.1标准二进制发行包 如果你正在开发服务和应用程序,你需要Axis2标准二进制发行包。这个发行包包括所有必要的*.jar文件,以及很多便于开发用的脚本。它具有以下结构。 Axis2标准二进制发行包目录的结构 bin axis2.bat axis2.sh axis2server.bat axis2server.sh java2wsdl.bat java2wsdl.sh wsdl2java.bat wsdl2java.sh setenv.sh lib activation-1.1.jar ... XmlSchema.jar repository modules modules.list addressing-1.1.mar ... services services.list version.aar ... samples ... webapp ... conf axis2.xml LICENSE.txt README.txt NOTICE.txt INSTALL.txt release-notes.html bin目录包括一些有用的脚本。它们包括axis2.bat(或者axis2.sh),这个文件可以让你在不手工添加Axis2 jar文件到类路径的情况下方便的执行Java命令;java2wsdl.bat(和.sh)和wsdl2java.bat(和.sh),它可以让你轻易的从一个WSDL文件生成Java代码,反之亦然;axis2server.bat(和sh),一个简易Web服务器,它可以让你早自己的应用程序中搭建Axis2

基于spring+cxf实现用户文件传输的webservice

基于spring+cxf实现用户文件传输的webservice 1 引言 在EDI系统中,用户数量较多,并且信息化水平差距较大,所以对报文的收发方式具有多样化的需求。相对其他访问方式而言,http(s)的访问在防火墙限制、安全性等方面都有较好表现。因此,有相当部分用户提出通过webservice发送报文的需求。本文介绍了如何采用cxf 结合spring框架实现具有文件上传和相关查询功能的webservice,以便其在使用.net或其他框架开发的MIS系统中能够自动生成报文并上传。同时,该webservice还提供了用户基本身份验证功能,对访问请求进行限制。 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。 2.功能分析 (1)该webservice需要提供报文上传到服务器上的基本功能。 (2)用户可以查询已经发送的报文历史信息列表,包括报文名称、报文大小和发送时间。 (3)由于不是开放服务,所以还需要对用户身份进行基本认证。 3.服务构建 (1)定义要提供的服务接口 首先要定义webservice输入输出的数据类型,主要包括报文名称、报文类型、报文发送时间以及处理文件流的DataHandler属性。代码片段如下:

Webservice接口开发

Webservice接口开发 Author:Geloin

目录 1 准备工作 (1) 2 服务器端 (1) 2.1 主程序 (1) 2.2 services.xml (2) 2.3 传值方式 (3) 2.4 打包 (4) 2.5 发布 (6) 3 客户端 (8) 3.1 导入包 (8) 3.2 示例代码 (8) 3.3 代码解析 (10) 3.3.1 设定服务器地址 (10) 3.3.2 设定action (10) 3.3.3 设定要调用的方法名 (11) 3.3.4 设定客户端控件 (11) 3.3.5 设定命名空间 (11) 3.3.6 设定需要传送的值 (11) 3.3.7 设定返回数据类型 (11) 3.3.8 获取返回结果 (12)

1准备工作 至https://www.wendangku.net/doc/384732309.html,/axis2/下载axis2的bin及war包,分别解压之,在环境变量中添加AXIS2_HOM,将axis2.war放置到tomcat/webapps目录下,启动tomcat,用浏览器打开http://localhost:8080/axis2,如下图所示: 2服务器端 2.1主程序 服务器端可以是任何一个程序,例如下面的例子: public class Test { // 此程序返回一个字符串 public String test1(String arg) { return arg + “测试”; } // 此程序返回一个一维数组 public String[] test2(String arg) { String[] result = new String[]{arg}; return result;

CXF实现WebService

使用Apache CXF实现Web Service 1.Web service的概念 什么是Web Service呢?从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service。Web Service是构建互联网分布式系统的基本部件。"网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。 举例来说,写一个“四川大地震图片墙”,它能动态显示关于四川地震的最新图片。但是,所有的图片都不是储存在自己的服务器上,而是来自https://www.wendangku.net/doc/384732309.html,。只需要发出一个动态请求,要求https://www.wendangku.net/doc/384732309.html,向自己提供图片。这种情况下,https://www.wendangku.net/doc/384732309.html,提供的就是一种Web service。如果把图片都存放在本地服务器,不调用https://www.wendangku.net/doc/384732309.html,,那么我就是在使用“本地服务”。 所以,Web service让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。 2.Web Service架构和云 如果一个软件的主要部分采用了“网络服务”,即它把存储或计算环节“外包”给其他网站了,那么我们就说这个软件属于Web Service架构。 Web Service架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。比如,如果你要开发一个相册软件,完全可以使用Flickr的网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。总体上看,凡是不属于你核心竞争力的功能,都应该把它“外包”出去。 最近很红的“云计算”(cloud computing)或者“云服务”(cloud services),实际上就是Web Service的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给“云”去做。 3.Web Service的优势 Web Servcie最主要的优点是,使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。SOAP作为Web Service的基本通信协议,简单,投入和使用的代价也很小。

SAP开发webservice接口教程

SAP开发webservice接口教程 在client=100中进行开发: 1.创建RFC函数 SE80,在函数组下,右击->创建,创建函数模块,填写函数模块名称及描述。 2.函数属性标签页,选择“远程启用的模块”,其余默认不变。 3.函数导入标签页,需要添加调用时传入的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_T (需要自己创建) 行类型:ZSHR_EMPLOYEER (需要自己创建)

4.函数导出标签页,需要添加调用返回的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_OUT_T (需要自己创建) 行类型:ZSHR_EMPLOYEER_OUT (需要自己创建) 5.函数源代码标签页,需要写代码实现把传入的数据保存在透明表中。 至此,函数创建完成。 6.创建Web Services 右击包名创建企业服务,进入如下页面,选择“Service Provider”,因为我们是服务提供者,点击“继续”。

7.选择“Existing ABAP Object (Inside Out)”,点击“继续”。 8.给服务起名,并填写描述,点击“继续”

9.选择“Function Module”,点击“继续”。 10.填写我们第一步创建的函数,并勾选“Map Name”,点击“继续”。 11.SOAP Appl默认不变,Profie下拉框选择第四个选择,即不进行权限认证。点击“继续”。 12.填写对于的包和请求,点击“继续”。 下一步,直接点击“完成”。服务创建成功。

13.配置SOA 使用T-CODE:soamanager,进入web页面的SOA管理(client=100)。 14.点击“简化Web服务配置”,进入如下设置页面,点击“执行”,从列表中找到自己创建的 服务,勾选第一个checkbox,User Name/Password(basic),点击列表左上角的“保存”,之后页面右上角的“返回”按钮,返回首页。 这一步设置,代表我们只设置用户名/密码的调用认证方式。

Axis2从入门到精通--Webservice在eclipse下开发教程

Axis2 教程 文章分类:Java编程 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。这些都将在后面的系列教程中讲解。在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService。 一、Axis2的下载和安装 读者可以从如下的网址下载Axis2的最新版本: https://www.wendangku.net/doc/384732309.html,/axis2/ 在本文使用了目前Axis2的最新版本1.4.1。读者可以下载如下两个zip包: axis2-1.4.1-bin.zip axis2-1.4.1-war.zip 其中axis2-1.4.1-bin.zip文件中包含了Axis2中所有的jar文件, axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。 将axis2-1.4.1-war.zip文件解压到相应的目录,将目录中的axis2.war 文件放到\webapps目录中(本文使用的Tomcat的版本是 6.x),并启动Tomcat。 在浏览器地址栏中输入如下的URL: http://localhost:8080/axis2/ 如果在浏览器中显示出如图1所示的页面,则表示Axis2安装成功。 图1

二、编写和发布WebService 对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。 下面我们来实现一个简单的POJO,代码如下: public class SimpleService { public String getGreeting(String name) { return "你好 " + name; } public int getPrice() { return new java.util.Random().nextInt(1000); } }

通过CXF开发webService接口(soap协议、maven项目)

1. 引入cxf的jar包 pom文件里面直接增加依赖 < dependency> junit junit 4.11 test org.springframework spring- webmvc 4.0.0.RELEASE org.apache.cxf apache-cxf 2.4.3 pom 2. 配置web.xml文件 < web-app xmlns= "https://www.wendangku.net/doc/384732309.html,/xml/ns/javaee" xmlns:xsi= "https://www.wendangku.net/doc/384732309.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.wendangku.net/doc/384732309.html,/xml/ns/javaee https://www.wendangku.net/doc/384732309.html,/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" > < display-name >Archetype Created Web Application < context-param > contextConfigLocation classpath:config/spring/metadata WebService-spring.xml org.springframework.web.conte xt.ContextLoaderListener

学习CXF WebService入门实例一

最近开发开始学习Web Service,如果你是大神,请路过!谢谢!遵循前辈大神们的教导~~~,内事不决问度娘,外事不决问谷歌(现在谷歌已经不能用了),只能问度娘了!上网一百度,套用周董的一句歌词,霍,霍,霍,霍,这么多的套路(axis,axis2,XFire,CXF等),我到底选择哪一个?因为要和Spring进行对接,看了一下,CXF与Spring的耦合度最好,于是就选择了CXF。上官网下jar包,下了最新的apache-cxf-3.1.4.zip包。解压出来,看看里面的最简单的实例,apache-cxf-3.1.4\samples\java_first_jaxws,本着你快乐所以我快乐加上不要脸的原则,我抄抄抄,改了一下名字,开发环境jdk1.6, jdk1.5没试过,上眼呐! 新建工程mywbs,导入jar包 cxf-core-3.1.4.jar jetty-continuation-9.2.11.v20150529.jar jetty-http-9.2.11.v20150529.jar jetty-io-9.2.11.v20150529.jar jetty-server-9.2.11.v20150529.jar jetty-util-9.2.11.v20150529.jar wsdl4j-1.6.3.jar xmlschema-core-2.2.1.jar 一、接口类IHelloWorld.java package com.ws.hello; import java.util.List; import javax.jws.WebService; import https://www.wendangku.net/doc/384732309.html,ers; @WebService public interface IHelloWorld { public String sayHello(String name); public String getUserName(Users user); public List getListUser(); } 二、实现类(说明endpointInterface = "com.ws.hello.IHelloWorld",IHelloWorld 类加上路径,此处注意)HelloWorldImpl.java package com.ws.hello; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import https://www.wendangku.net/doc/384732309.html,ers; @WebService(endpointInterface = "com.ws.hello.IHelloWorld",serviceName = "IHelloWorld", portName="IHelloWorldPort") public class HelloWorldImpl implements IHelloWorld { @Override public String sayHello(String name) { return name + ": 您好啊!";

webservice接口开发

Eclipse 关于接口系统的开发 我们做接口服务端: 小知识: 接口分为:服务端与客户端 服务端:即提供者,是为调用者提供数据的一方; 客户端:即调用者,是调用接口的一方; <一> 服务端的创建 步骤1. 在eclipse新建一个普通工程,例如:新建一个web project 工程。 步骤2.创建完成后,在刚才新建的工程里面,加入我们需要实现的类,和接口。在实现类里面编写客户端传入参数后,需要的相关信息。 例如: Public String sayHello(String word) { Return word; } 步骤3. 进入服务端代码的自动生成阶段,我们选中刚才编写的实现类或是创建的工程,右键。选择,new→project…→other→,如下图,选择web service 服务端。点击next

步骤4.根据下图,通过选择实现类,点击完成。自动生成服务端了。

步骤5 .前4步骤已经完成了webservice的服务端,并已经自动启动好了,我们进行如下测试,访问下自动产生的wsdl文件是否能访问到: 例如:访问wsdl地址示例 http://10.1.159.28:8082/ICTS/services/GetWorkflowListDaoImp?wsdl 其中:GetWorkflowListDaoImp 为自己创建的实现类名称 <二>客户端的创建,测试我们完成的服务端接口:

步骤1. 创建一个普通的web project 工程 步骤2. 创建完成后,选中,我们创建的工程,右键→,new→other→,创建web service cliet 客户端,完成后,点击finish。完成 步骤3。我们通过客户端进行调用,测试一下服务端是否正常。通过如下示例地址:http://10.1.159.28:8082/test1/sampleGetWorkflowListDaoImpProxy/TestClient.jsp, 这是客户端为我们自动建立的测试页面,我们只需输入参数,就可以进行测试了。界面如下:

Eclipse+CXF开发Web服务、Tomcat部署

一、下载CXF包,apache-cxf-2.6.1.tar.gz,解压后得到文件夹apache-cxf-2.6.1 图1 二、创建服务端 1、新建Dynamic Web Project File—New—Project—Web—Dynamic Web Project; 工程命名后Next,将“Default output folder”改为WebContent/WEB-INF/classes,Next; 勾选“Generate web.xml deployment discriptor”。

图2

图3 图4 2、将解压后apache-cxf-2.6.1文件夹lib文件夹中的JAR文件导入工程下WebContent/WEB-INF/lib中,或直接复制到相应文件夹下,刷新工程。 3、创建服务接口 工程右键—New—Interface,添加代码: package com.yxj; import javax.jws.WebService; import javax.jws.WebParam; import javax.jws.WebMethod; @WebService public interface IcxfWB { @WebMethod String sayHello(@WebParam(name="name") String name); } 说明:“@WebService”标记表示该接口是一个WebService服务,@ WebMethod标记表示WebService中的方法;@WebParam(name="paramName")

表示方法中的参数,name属性限制了参数的名称,若没有指定该属性,参数将会被重命名。 4、创建服务实现类 package com.yxj; public class CxfWBImpl implements IcxfWB { public String sayHello(String name) { return"Hello "+name; } } 5、编辑WebContent/WEB-INF下web.xml文件 CXFService contextConfigLocation WEB-INF/service-beans.xml org.springframework.web.context.ContextLoaderListener CXFServlet org.apache.cxf.transport.servlet.CXFServlet CXFServlet /* 其中,指定了spring的相应配置,在中指定了配置文件的位置;下的指明了服务访问时地址的形式,“/*”代表URL地址中,包名称后直接跟服务endpoint地址,若指明为“/webservice/*”,则URL为包名/ webservice/endpoint?wsdl。

JAVA 利用axis2或cxf调用ABAP发布的Webservice

JA V A 利用axis2或cxf调用ABAP发布的Webservice 1.调用过程中存在问题及解决办法 1.1无法利用AXIS2, CXF标准工具解析ECC发布的地址。 解决:利用IE访问Webservice地址,然后将其另存为*.xml文件 利用CXF工具,编译该*.xml 文件,生成JAVA类。 输入:wsdl2java -d src - client http://Webservice。。。。。。。 附加:wsdl2java用法: wsdl2java -p com -d src -all aa.wsdl -p 指定其wsdl的命名空间,也就是要生成代码的包名: -d 指定要产生代码所在目录 -client 生成客户端测试web service的代码 将文件拷贝到程序中。 注意问题:1. 类文件中的包名需要修改,部分定义的-包.类-格式中的包也需要修改. 2. 工具生成类的过程中,如果出现重名的情况(例如某类:TEST,但是有其他类 应该是test,大小写不区分),一般只会保存一个类,需要手工添加缺少的类(可从其他代码的报错信息看出)。 1.2访问权限问题: 访问的权限体现在http的体系中 不同的调用方式,拥有不同的设置权限方法,以CXF为例: 需要在解析后的**client类中添加代码: Client client = ClientProxy.getClient(port); HTTPConduit http = (HTTPConduit) client.getConduit(); AuthorizationPolicy auth = new AuthorizationPolicy(); auth.setUserName("gang.xu"); auth.setPassword("654321"); h ttp.setAuthorization(auth); 1.3访问地址: ABAP会发布两种可以访问的WSDL地址; 第一种: https://www.wendangku.net/doc/384732309.html,:8000/sap/bc/srt/rfc/sap/ytest_se rvice/300/ytest_service/ytest_service

基于TA+3webservice开发文档

Cxf WebService 整合Ta+3 1、需导入的jar包: 2、Web.xml配置: CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /services/* 3、在config/bs下面建一个spring-cxf.xml,配置发布webservice

Webservice的应用与开发试卷

南京工业大学WebService的应用与开发试题(A)卷班级学号姓名 一、判断题(正确的打勾,错误的打叉,每题2分) 1.SOAP(Simple Object Access Protocol)协议是一个基于Xml的协议。它描述了数据类型的消 息格式以及一整套串行化规则,包括结构化类型和数组。(o) 2.客户端与Xml Web服务进行异步通信,向服务端发出服务请求的方法与接收web服务返回 的结构在同一线程中(e) 3.基于消息的体系的分布式应用中,可以使用异步消息处理也可以使用同步消息处理(o) 4.Web服务中使用SOAP表示数据的优点是SOAP提供了一种所有平台都支持的中间表示方 式,客户端只要将SOAP类型转换为自身平台可以理解的类型即可(o) 5.分布式应用程序节点越多,单点失败的可能性越大,整个系统发生故障的可能性越大(o) 6.Apache CXF为java WebService的一个框架,可以用它提供的命令行工具wsdl2java生成客 户端的代理类(o) 7.Xml DTD提供了一种避免元素名冲突的方法(e) 8.所有Xml文件只有一个根元素且不分大小写(e) 9.每个Xml文档分为两个部分:序言和文档元素。(o) 10.都是WSDL文档的关键元素。( e ) 11.XML Web服务的交互可以使用Internet协议中所有的协议( e ) 12.对于Web服务的请求可以穿越防火墙( o ) 13.ajax可以跨域访问Web服务( o ) 14.元素在WSDL中用于描述操作的引用输入/输出消息( o ) 15.元素在WSDL中用于描述交互中已经被定义了类型的数据( o ) 二、选择题(单、多项选择,每题2分) 1.Web Service需要以下哪些技术、协议的支持(ABCD ) A.HTTP B.SOAP C.XML D. T CP/IP 2.下列选项中,哪个是XML合法的元素名(A ) A.TOM

创建WebService使用Axis2和CXF的区别

创建WebService使用Axis2和CXF的区别 J2EE中WebService的建立可以使用Axis2,也可以使用Apache CXF,两者的区别与优缺点如下: Web Services 框架如Axis2、CXF 都是由现有的项目中逐渐演化而来的,Axis2 是由Axis 1.x 系列演化过来,而Apache CXF 则是由Celtix 和XFire 项目整合而生,并且刚刚发布了2.0.2 的最新版本,不过仍是Apache 的一个孵化项目。 Axis2 是对Axis 进行了彻底的重写的一个新项目了,它使用了新的模块化架构,更方便于功能性的扩展等等。 Apache CXF 则是由XFire 和Celtix 两个现有的项目进行了重组。 先比较一下它们的不同之处: 1、Apache CXF 支持WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile 2、Axis2 支持WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持 3、Apache CXF 是根据Spring哲学来进行编写的,即可以无缝地与Spring进行整合 4、Axis2 不是 5、Axis2 支持更多的data bindings,包括XMLBeans、JiBX、JaxMe 和JaxBRI,以及它原生的data binding(ADB)。 6、Apache CXF 目前仅支持JAXB 和Aegis,并且默认是JAXB 2.0,与XFire 默认是支持Aegis 不同,XMLBeans、JiBX 和Castor 将在CXF 2.1 版本中得到支持,目前版本是2.0.2 7、Axis2 支持多种语言,它有C/C++ 版本。 8、Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services 如何抉择: 1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 2、如果应用程序是遵循Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的Web Services 来说; 3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如Axis1,XFire,Celtrix 或BEA 等等厂家自己的Web Services 实现,就别劳民伤财了 因为CXF可以和Spring无缝的进行结合,而我的项目用到了spring ,所以我选的是CXF。

cxf+spring发布webservice接口及接口的调用

一、CXF介绍 Apache CXF=Celtix+XFire,Apache CXF的前身叫Apache CeltiXfire。CXF继承了Celtix和XFire两大开源项目的精华,提供了对JAX-WS全面的支持,并且提供了多种Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者WSDL优先(WSDL First)来轻松地实现Web Services的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。CXF支持多种协议,如:SOAP、XML/HTTP、RESTful HTTP、CORBA,并且可以在多种传输协议上运行,比如:HTTP、JMS、JBI。CXF可以与Spring进行无缝集成。 CXF框架是一种基于Servlet技术的SOA应用开发框架,要正常运行基于CXF应用框架开发的企业应用,除了CXF框架本身之外,还需要JDK和Servlet容器的支持。 CXF下载地址:https://www.wendangku.net/doc/384732309.html,/download.html,选择“File”列中的zip格式下载。解压后可以看到一些文件夹: └─apache-cxf-2.5.0 ├─bin各种工具 ├─docs API文档 ├─etc各种配置文件 ├─lib开发所需jar包 ├─licenses说明 ├─modules jar包 └─samples使用例子 samples文件夹中给提供了在各种环境下使用的例子,个人感觉只需参照样例即可。 二、使用CXF+Spring编写并发布WebService 首先,新建一个Web项目,名字叫cxftest,将下载的压缩包中lib文件夹下的jar包全部拷贝到项目的WEB-INF/lib中,在web.xml中配置如下: [html]view plaincopy 1. 2.CXFServlet

相关文档
相关文档 最新文档