`

webService发布和访问小结

阅读更多
一般来说,在实际的项目中,webService的发布和调用一般都是用Apache cxf

首先,再次进行说明,通俗的说,webService的功能就是可以实现跨平台、跨语言的远程调用。
最基础的平台是xml+http

WebService平台的元素:soap协议(简单对象访问协议),WSDLWeb  Service Describe language,网络服务描述语言)。

其实这里我不想再写代码了,原理才是最重要的。

下面是我画的原理图:



 

我的上一篇日志中说过用JDK自带的Endpoint发布WebService和调用WebService的方法了。最近有研究了使用cxf来发布和调用WebService的方式。

 

看这篇日志的人应该也都是内行,cxfApache开源基金会下的一个开源的项目,也是Celtix + XFire的混合体,我现在大概知道这么多。

首先,需要的同学可以去Apache的官网上去下载。

第二步:如果你要使用wsdl2java命令来根据webService发布在网络上的API来生成本地代码(可以只生成java文件,不生成.class文件,wsdl2java -s . url;

第三步:发布或者调用服务。

             发布服务时,可能需要用到的类:

1. ServerFactoryBean,该类可用于发布soap1.1版本协议的服务;

 

2.  JaxWsServerFactoryBean,这是ServerFactoryBean的增强子类,可用于发布soap1.2版本的协议;

 

注意:如果使用的协议为soap1.2的版本(即在接口上使用@BindingType(SOAPBinding.SOAP12HTTP_BINDING)),那么在使用wsimport命令生成本地代码时,需要加上-extension命令来生成相关接口文件。

发布的流程为:

   第一步:创建发布类对象;

   第二步:设置webService服务的地址;

   第三步:设置webService的接口类型;

   第四步:设置webService的实现类;

   第五步(可以略过):这里可以设置下是否对消息进行拦截;

   第六步:发布服务;

  

同样,对应的客户端访问类:

1. ServerFactoryBean对应的是ClientProxyFactoryBean

 

2. JaxWsServerFactoryBean对应的客户端访问类是JaxWsProxyFactoryBean.

 

访问服务的大概流程:

    第一步:创建访问webService服务的实例;

    第二步:设置需要访问的webService的网络地址;

    第三步:设置接口类型;

    第四步:创建接口实例;

    第五步:调用相关接口的方法(远程调用);

 

(我想说代码不是最重要的,重要的是理解里面的原理,运行的机制,底层都是jdk中的Socket)。

 

下面的代码是使用cxf发布和调用webService的例子:

   这是一个没有实现接口的WebService,如果是接口,那么将注解打在接口上。

import javax.jws.WebService;

@WebService
public class CxfWebService {

	public void sayHello(){
		System.out.println("hello!");
	}
	
}

     使用ServerFactoryBean发布服务,

import org.apache.cxf.frontend.ServerFactoryBean;

public class CxfServer {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建发布服务的类...
		ServerFactoryBean bean=new ServerFactoryBean();
		bean.setAddress("http://192.168.9.100:8080/server");//服务对外的访问地址
		bean.setServiceClass(CxfWebService.class);//设置服务类的接口类型,如果没有接口则为当前类..
		bean.setServiceBean(new CxfWebService());//设置服务类的实现
		bean.create();//发布服务
	}

}

    客户端:

    1. 使用wsimport命令生成本地java代码,将生成的接口拷贝到项目中来。

    2. 使用ClientProxyFactoryBean类调用WebService服务;

    具体代码如下:

import org.apache.cxf.frontend.ClientProxyFactoryBean;


/**
 * 使用CXF提供的类 ClientProxyFactoryBean调用webService服务
 * @author 肖云
 */
public class CxfClientInvoke {

	public static void main(String[] args) {
		// 创建调用webService服务的类
		ClientProxyFactoryBean bean = new ClientProxyFactoryBean();
		// 设置调用地址
		bean.setAddress("http://192.168.0.102:8090/cxfService");
		// 设置接口类型
		bean.setServiceClass(CxfWebServicePortType.class);
		// 创建接口类型的实例
		CxfWebServicePortType cxfWebServicePortType = (CxfWebServicePortType) bean.create();
		// 调用相关方法
		cxfWebServicePortType.sayHello();
	}

}

    其中:

CxfWebServicePortType 类是使用wsimport生成的相关接口

 

  • 大小: 38.9 KB
分享到:
评论

相关推荐

    java发布webservice接口

    java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在

    webservice发布和调用简单案例

    简单的webservice发布和调用 初学者可以看看

    PB12.5WEBSERVICE发布问题处理

    PowerBuilder12.5做的webservice发布到iis上面遇到的问题以及解决办法

    webservice发布及调用

    ### WebService 发布及调用方法详解 #### 一、概述 WebService 技术作为一种标准的跨平台服务交互协议,在企业级应用集成中扮演着重要角色。本文将详细介绍 WebService 的四种常见发布方式:CXF、XFire、Axis2 和 ...

    微信小程序访问webservice

    在微信小程序中访问WebService,我们需要遵循以下步骤: 1. **创建WebService接口**:在.NET环境中,可以使用ASP.NET或WCF(Windows Communication Foundation)来创建WebService。编写一个公共方法,该方法处理...

    webservice发布与调用

    2. WebService发布: 发布WebService主要涉及以下步骤: - **创建服务接口**:定义服务的操作(方法)和输入/输出参数。在Java中,这通常通过JAX-WS(Java API for XML Web Services)实现,使用注解如@WebService...

    访问WebService处理拦截开始访问的消息

    本文将详细探讨"访问WebService处理拦截开始访问的消息"这一主题,包括Web服务的工作原理、消息拦截的概念以及如何实现拦截开始访问的消息。 1. **Web服务的工作原理** Web服务基于SOAP(Simple Object Access ...

    C#WebService发布和IIS配置以及部分问题解决

    4. **发布 WebService**:为了能让其他应用程序通过网络访问该 WebService,需要将其部署到服务器。这里假设部署到本地 IIS。 - **发布 WebService**:在 Visual Studio 中,右键点击项目,选择“发布”。按照向导...

    webservice接口发布脚本

    webservice接口发布脚本,用于服务端发布,存放在WEB_INF目录下即可!

    labview调用webservice访问远程数据1

    LabVIEW 调用WebService 访问远程数据 在本篇文章中,我们将讨论如何使用 LabVIEW 调用 WebService 来访问远程数据。首先,我们需要了解为什么需要使用 WebService 来访问远程数据。传统的方法是使用链接字符串连接...

    基于Webservice的数据访问.docx

    基于 Webservice 的数据访问技术 Webservice 工作原理 Webservice 是一种基于网络的远程过程调用(RPC)技术,允许不同的应用程序之间通过网络进行通讯和交互。Webservice 工作原理可以分为两种:通过 Socket 实现...

    微信小程序访问webservice,包含小程序代码和webservice接口代码

    在这个“微信小程序访问webservice”的项目中,我们主要会涉及到以下几个关键知识点: 1. **微信小程序开发环境**:首先,你需要安装微信开发者工具,这是一个集成开发环境,提供调试、预览、发布等功能,是开发...

    用Java程序访问Net WebService.doc

    本文将详细介绍如何使用 Java 程序访问 Net WebService,包括 Net WebService 的创建、发布和访问等内容。 一、 Net WebService 的创建 首先,我们需要使用 C# 创建一个简单的 Net WebService。下面是一个简单的...

    webservice发布出现的问题

    webservice常见问题及解决: 一、 VS中创建Web服务项目。 二、 WebService生成发布 三、 网站发布 四、 故障及解决方法 五、 如何访问WebService 六、 Win 7下的WebService

    cxf发布webservice示例

    webservice示例 springmvc+maven+cxf发布webservice 博客地址 http://blog.csdn.net/joe_storm/article/details/78839150

    用Eclipse发布WebService图解

    用Eclipse发布WebService图解

    EOS发布WebService-服务端

    在描述中,“EOS发布WebService-服务端”可能意味着讨论如何在EOS环境中创建和部署Web服务,以便其他系统或客户端可以调用这些服务来执行特定的功能。这通常涉及XML(可扩展标记语言)、SOAP(简单对象访问协议)和...

    SAP开发——在SAP上发布WebService 

    在这里,我们将创建一个新的函数模块或使用已有的模块来构建WebService的基础。 **B. 创建WebService** 在SE37中,选择“创建Web服务”选项,这通常意味着选择“无权限认证”。这表示外部系统访问此WebService时...

    java webservice的发布以及调用

    ### Java WebService 的发布与调用 #### 一、前言 随着互联网技术的发展,不同系统之间的通信变得越来越重要。WebService作为一种重要的分布式计算技术,在跨平台、跨语言的服务交互方面发挥着重要作用。本文将详细...

Global site tag (gtag.js) - Google Analytics