文档库 最新最全的文档下载
当前位置:文档库 › Java通过Cxf创建webService接口

Java通过Cxf创建webService接口

Java通过Cxf创建webService接口
Java通过Cxf创建webService接口

Java通过Cxf创建webService接口一、导入cxf需要的jar包

二、编写服务类

public class CxfService implements CxfServiceImpl {

/* (non-Javadoc)

* @see https://www.wendangku.net/doc/8d2149739.html,.liveuc.cxf.service.CxfServiceImpl#getSay(https://www.wendangku.net/doc/8d2149739.html,ng.String) */

@WebMethod

public String getSay(String name) {

return "say:" + name + "时间:" + new Date();

}

}

@WebService

public class CxfService implements CxfServiceImpl {

/* (non-Javadoc)

* @see https://www.wendangku.net/doc/8d2149739.html,.liveuc.cxf.service.CxfServiceImpl#getSay(https://www.wendangku.net/doc/8d2149739.html,ng.String)

*/

@WebMethod

public String getSay(String name) {

return "say:" + name + "时间:" + new Date();

}

}

三、抽取接口

public interface CxfServiceImpl {

@WebMethod

public abstract String getSay(String name);

}

@WebService

public interface CxfServiceImpl {

@WebMethod

public abstract String getSay(String name);

}

四、写启动类

public StartService() {

//实例化服务类

CxfService cs = new CxfService();

//用ServerFactoryBean发布服务

JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();

//设置服务访问地址

sf.setAddress("http://127.0.0.1:9090/say");

//设置服务接口类

sf.setServiceClass(CxfServiceImpl.class);

//设置服务具体类

sf.setServiceBean(cs);

//开启服务

sf.create();

}

public static void main(String[] args) {

new StartService();

}

}

二、cxf与Spring集成webservice

二、编写Spring配置文件applicationContext.xml

?

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd">

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd">

手动添加的内容:

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd"

-->

三、在web.xml中配置Spring的加载文件和cxf拦截器

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

cxf

org.apache.cxf.transport.servlet.CXFServlet

1

cxf

/ws/*

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

cxf

org.apache.cxf.transport.servlet.CXFServlet

1

cxf

/ws/*

2.编写服务接口

@WebService

public interface CxfServiceImpl {

@WebMethod

public abstract String getSay(String name);

}

3.编写服务具体类

@WebService

public class CxfService implements CxfServiceImpl {

/* (non-Javadoc)

* @see https://www.wendangku.net/doc/8d2149739.html,.liveuc.cxf.service.CxfServiceImpl#getSay(https://www.wendangku.net/doc/8d2149739.html,ng.String)

*/

@WebMethod

public String getSay(String name) {

return "say:" + name + "时间:" + new Date();

}

}

2.编写服务接口

@WebService

public interface CxfServiceImpl {

@WebMethod

public abstract String getSay(String name);

}

3.编写服务具体类

@WebService

public class CxfService implements CxfServiceImpl {

/* (non-Javadoc)

* @see https://www.wendangku.net/doc/8d2149739.html,.liveuc.cxf.service.CxfServiceImpl#getSay(https://www.wendangku.net/doc/8d2149739.html,ng.String)

*/

@WebMethod

public String getSay(String name) {

return "say:" + name + "时间:" + new Date();

}

}

五、在Spring配置文件中配置接口

六、启动tomcat,接口创建成功

三、spring+cxf调用webservice接口

二、编写Spring配置文件ClientBeans.xml

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xmlns:jaxrs="https://www.wendangku.net/doc/8d2149739.html,/jaxrs"

xmlns:cxf="https://www.wendangku.net/doc/8d2149739.html,/core"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd https://www.wendangku.net/doc/8d2149739.html,/jaxrs https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxrs.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd

https://www.wendangku.net/doc/8d2149739.html,/core https://www.wendangku.net/doc/8d2149739.html,/schemas/core.xsd">

address="http://127.0.0.1:8080/ws/wss/helloworld"

serviceClass="com.itcast.cxf.first.IHelloWorld">

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xmlns:jaxrs="https://www.wendangku.net/doc/8d2149739.html,/jaxrs"

xmlns:cxf="https://www.wendangku.net/doc/8d2149739.html,/core"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxrs https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxrs.xsd

https://www.wendangku.net/doc/8d2149739.html,/core https://www.wendangku.net/doc/8d2149739.html,/schemas/core.xsd">

address="http://127.0.0.1:8080/ws/wss/helloworld"

serviceClass="com.itcast.cxf.first.IHelloWorld">

三、调用类

package com.itcast.cxfweb.java.client;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext; import com.itcast.cxf.first.IHelloWorld;

/**

* Java项目的客户端

* @author wangjianme

*/

public class CxfJavaClient {

public static void main(String[] args) {

//读取配置文件

ApplicationContext ctx =

new ClassPathXmlApplicationContext("ClientBeans.xml");

//get到接口类型并调用

IHelloWorld hello = (IHelloWorld)ctx.getBean("helloClient");

String str = hello.sayHello("WJ");

System.err.println(str);

}

}

package com.itcast.cxfweb.java.client;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext; import com.itcast.cxf.first.IHelloWorld;

/**

* Java项目的客户端

* @author wangjianme

*/

public class CxfJavaClient {

public static void main(String[] args) {

//读取配置文件

ApplicationContext ctx =

new ClassPathXmlApplicationContext("ClientBeans.xml");

//get到接口类型并调用

IHelloWorld hello = (IHelloWorld)ctx.getBean("helloClient");

String str = hello.sayHello("WJ");

System.err.println(str);

}

四、Struts2+Spring+jsp调用webservice接口

1、书写Action类名为:Struts2ClientAction.java。源码如下:(返回复杂结果集转成json。) package com.itcast.struts2.client;

import com.itcast.cxf.first.IHelloWorld;

import com.opensymphony.xwork2.ActionSupport;

/**

* Struts2访问WebService

* @author wangjianme

*/

public class Struts2ClientAction extends ActionSupport{

private static final long serialVersionUID = 1L;

private IHelloWorld hello; //注入属性

private String name; //用户输入的姓名

public String getName() {

return name;

}

public void setName(String name) {

https://www.wendangku.net/doc/8d2149739.html, = name;

}

public IHelloWorld getHello() {

return hello;

}

public void setHello(IHelloWorld hello) {

this.hello = hello;

}

public String execute() throws Exception {

name = getHello().sayHello(getName()); //远程调用

return SUCCESS;

}

}

package com.itcast.struts2.client;

import com.itcast.cxf.first.IHelloWorld;

import com.opensymphony.xwork2.ActionSupport;

/**

* Struts2访问WebService

* @author wangjianme

*/

public class Struts2ClientAction extends ActionSupport{

private static final long serialVersionUID = 1L;

private IHelloWorld hello; //注入属性

private String name; //用户输入的姓名

public String getName() {

return name;

}

public void setName(String name) {

https://www.wendangku.net/doc/8d2149739.html, = name;

public IHelloWorld getHello() {

return hello;

}

public void setHello(IHelloWorld hello) {

this.hello = hello;

}

public String execute() throws Exception {

name = getHello().sayHello(getName()); //远程调用

return SUCCESS;

}

2、applicationContext.xml的最终源代码如下

?

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xmlns:jaxrs="https://www.wendangku.net/doc/8d2149739.html,/jaxrs"

xmlns:cxf="https://www.wendangku.net/doc/8d2149739.html,/core"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd https://www.wendangku.net/doc/8d2149739.html,/jaxrs https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxrs.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd

https://www.wendangku.net/doc/8d2149739.html,/core https://www.wendangku.net/doc/8d2149739.html,/schemas/core.xsd">

serviceClass="com.itcast.cxf.first.IHelloWorld"

id="helloService">

class="com.itcast.struts2.client.Struts2ClientAction"

scope="prototype">

xmlns:xsi="https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance"

xmlns:jaxws="https://www.wendangku.net/doc/8d2149739.html,/jaxws"

xmlns:jaxrs="https://www.wendangku.net/doc/8d2149739.html,/jaxrs"

xmlns:cxf="https://www.wendangku.net/doc/8d2149739.html,/core"

xsi:schemaLocation="https://www.wendangku.net/doc/8d2149739.html,/schema/beans

https://www.wendangku.net/doc/8d2149739.html,/schema/beans/spring-beans.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxrs https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxrs.xsd

https://www.wendangku.net/doc/8d2149739.html,/jaxws https://www.wendangku.net/doc/8d2149739.html,/schemas/jaxws.xsd

https://www.wendangku.net/doc/8d2149739.html,/core https://www.wendangku.net/doc/8d2149739.html,/schemas/core.xsd">

serviceClass="com.itcast.cxf.first.IHelloWorld"

id="helloService">

class="com.itcast.struts2.client.Struts2ClientAction"

scope="prototype">

3、配置struts.xml文件的源代码如下:

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.wendangku.net/doc/8d2149739.html,/dtds/struts-2.0.dtd">

/jsps/result.jsp

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.wendangku.net/doc/8d2149739.html,/dtds/struts-2.0.dtd">

/jsps/result.jsp

4、jsps/struts2.jsp的源代码如下:

%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="https://www.wendangku.net/doc/8d2149739.html,/jsp/jstl/core" prefix="c"%>


<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="https://www.wendangku.net/doc/8d2149739.html,/jsp/jstl/core" prefix="c"%>


5、jsps/result.jsp页面如下

%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%>

五、js调用webservice接口以下是jsclient.jsp的源代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="https://www.wendangku.net/doc/8d2149739.html,/jsp/jstl/core" prefix="c"%>


确定

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/8d2149739.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/8d2149739.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/8d2149739.html,er; 7. 8./** 9.* CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知 道是什么原因? 10.* 11.* @author Administrator 12.* 13.*/

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),点击列表左上角的“保存”,之后页面右上角的“返回”按钮,返回首页。 这一步设置,代表我们只设置用户名/密码的调用认证方式。

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)应用到产品家族中

【WebService】接口的测试方法

【WebService】接口的测试方法 有以下多种方式: 一、通过WSCaller.jar工具进行测试: 前提:知道wsdl的url。 wsCaller可执行程序的发布方式为一个wsCaller.jar包,不包含Java运行环境。你可以把wsCaller.jar复制到任何安装了Java运行环境(要求安装JRE/JDK 1.3.1或更高版本)的计算机中,用以下命令运行wsCaller: java -jar wsCaller.jar 使用wsCaller软件的方法非常简单,下面是wsCaller的主界面: 首先在WSDL Location输入框中输入你想调用或想测试的Web Service的WSDL位置,如“https://www.wendangku.net/doc/8d2149739.html,/axis/services/StockQuoteService?wsdl”,然后点“Find”按钮。wsCaller就会检查你输入的URL地址,并获取Web Service的WSDL信息。如果信息获取成功,wsCaller会在Service和Operation下拉列表框中列出该位置提供的Web Service服务和服务中的所有可调用的方法。你可以在列表框中选择你要调用或测试的方法名称,选定后,wsCaller窗口中间的参数列表框就会列出该方法的所有参数,包括每个参数的名

称、类型和参数值的输入框(只对[IN]或[IN, OUT]型的参数提供输入框)。你可以输入每个参数的取值。如下图: 这时,如果你想调用该方法并查看其结果的话,只要点下面的“Invoke”按钮就可以了。如果你想测试该方法的执行时间,则可以在“Invoke Times”框中指定重复调用的次数,然后再按“Invoke”按钮。wsCaller会自动调用你指定的方法,如果调用成功,wsCaller会显示结果对话框,其中包括调用该方法所花的总时间,每次调用的平均时间和该方法的返回值(包括返回值和所有输出型的参数)。如下图:

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/8d2149739.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;

基于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属性。代码片段如下:

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/8d2149739.html,。只需要发出一个动态请求,要求https://www.wendangku.net/doc/8d2149739.html,向自己提供图片。这种情况下,https://www.wendangku.net/doc/8d2149739.html,提供的就是一种Web service。如果把图片都存放在本地服务器,不调用https://www.wendangku.net/doc/8d2149739.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的基本通信协议,简单,投入和使用的代价也很小。

通过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/8d2149739.html,/xml/ns/javaee" xmlns:xsi= "https://www.wendangku.net/doc/8d2149739.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.wendangku.net/doc/8d2149739.html,/xml/ns/javaee https://www.wendangku.net/doc/8d2149739.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/8d2149739.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/8d2149739.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 + ": 您好啊!";

ESB部署WebService接口(统一用户和待办)

1 统一待办(WebService方式) 1.1 概述 门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。 统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。 为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。 统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理 1.2 待办信息获取 设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图

数据获取设计示意图 步骤如下: 1.应用系统需获得最新的待办信息。 2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。 3.统一待办系统将应用系统提供的待办信息展示给用户。 4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。 1.3 待办信息展示 设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图 用户 待办栏目页面 待办集中展示设计示意图 场景如下:

在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。此外,如果信息是未办或者未阅,用红色表示 1.4 待办信息处理 设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图: 待办信息集中处理设计示意图

ESB部署WebService接口(统一用户和待办)

1统一待办(WebService方式) 1.1概述 门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。 统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。 为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。 统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理 1.2待办信息获取 设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图

数据获取设计示意图 步骤如下: 1.应用系统需获得最新的待办信息。 2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。 3.统一待办系统将应用系统提供的待办信息展示给用户。 4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。 1.3待办信息展示 设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图 用户 待办栏目页面 待办集中展示设计示意图 场景如下:

在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。此外,如果信息是未办或者未阅,用红色表示 1.4待办信息处理 设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图: 待办信息集中处理设计示意图

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。

WebService接口代码样例说明

WS接口代码样例 Java代码调用样例 参见WSTest_for_Java.rar附件,该附件为Eclipse工程代码。接口调用参见https://www.wendangku.net/doc/8d2149739.html,info.smsmonitor.Test C代码调用样例 参见WSTest_for_c.tar附件,该附件为标准C工程代码。 附录 Webservice消息发送接口报文样例: TaskID-003761653 8613301261178 106557503 1 This is test message 1 00:00-23:59

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, 这是客户端为我们自动建立的测试页面,我们只需输入参数,就可以进行测试了。界面如下:

常用的webservice接口

商业和贸易: 1、股票行情数据WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询) Endpoint:https://www.wendangku.net/doc/8d2149739.html,/WebServices/StockInfoWS.asmx Disco:https://www.wendangku.net/doc/8d2149739.html,/WebServices/StockInfoWS.asmx?disco WSDL:https://www.wendangku.net/doc/8d2149739.html,/WebServices/StockInfoWS.asmx?wsdl 支持香港股票、深圳、上海封闭式基金、债券和股票;支持多股票同时查询。数据即时更新。此中国股票行情数据WEB 服务仅作为用户获取信息之目的,并不构成投资建议。支持使用| 符号分割的多股票查询。 2、中国开放式基金数据WEB 服务 Endpoint:https://www.wendangku.net/doc/8d2149739.html,/WebServices/ChinaOpenFundWS.asmx Disco:https://www.wendangku.net/doc/8d2149739.html,/WebServices/ChinaOpenFundWS.asmx?disco WSDL:https://www.wendangku.net/doc/8d2149739.html,/WebServices/ChinaOpenFundWS.asmx?wsdl 中国开放式基金数据WEB 服务,数据每天15:30以后及时更新。输出数据包括:证券代码、证券简称、单位净值、累计单位净值、前单位净值、净值涨跌额、净值增长率(%)、净值日期。只有商业用户可获得此中国开放式基金数据Web Services的全部功能,若有需要测试、开发和使用请QQ:8698053 或联系我们 3、中国股票行情分时走势预览缩略图WEB 服务 Endpoint: https://www.wendangku.net/doc/8d2149739.html,/webservices/ChinaStockSmallImageWS.asmx Disco: https://www.wendangku.net/doc/8d2149739.html,/webservices/ChinaStockSmallImageWS.asmx?disco WSDL: https://www.wendangku.net/doc/8d2149739.html,/webservices/ChinaStockSmallImageWS.asmx?wsdl 中国股票行情分时走势预览缩略图WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。返回数据:2种大小可选择的股票GIF分时走势预览缩略图字节数组和直接输出该预览缩略图。 4、外汇-人民币即时报价WEB 服务 Endpoint: https://www.wendangku.net/doc/8d2149739.html,/WebServices/ForexRmbRateWebService.asmx Disco:https://www.wendangku.net/doc/8d2149739.html,/WebServices/ForexRmbRateWebService.asmx?disco

基于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

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