`

WebService的几种不同实现方式

阅读更多
server 01:ejb07
//定义接口
public interface EjbWebService {
	public void addUser(String x);
}

//定义实现
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Stateless
@WebService//标注这是一个提供WebService的类
public class EjbWebServiceImpl implements EjbWebService {
	@WebMethod////标注webService方法
	public void addUser(String x) {
		System.out.println("EjbWebServiceImpl:" + x);
	}

}
启动Jboss服务器并部署项目

client for ejb07_axis:
新建Java项目将axis的jar包引入 然后将simples\client下的DynamicInvoker.java方法拷贝到新建的Java项目中
打开文件细读会发现文件中有一个main方法,里面有三个变量的定义用来接收参数,(想要了解整个流程要把这个文件读懂,初学者可以不用理会)所以
在DynamicInvoker.java上右键单击-->Run Configurations--->args:设置如下-->run
//访问服务器端webServiceBean生成wsdl文件
http://localhost:8080/ejb07/EjbWebServiceImpl?wsdl
//访问Webservice方法
addUser
//为方法添加参数
张三

方法执行完成后会成功调用到server端的代码。

client—for ejb07_jax:
新建java项目aaa -->src(或包名)右键单击-->new WebService Client--Next--Jax-WS---输入WSDL URL并选择JavaPackage---next会根据wsdl文档生成相应的代码-->next自动导入相应的jar包--finish完成
//建立一个测试类测试
import com.bjsxt.web.service.EjbWebServiceImpl;
import com.bjsxt.web.service.EjbWebServiceImplService;

public class Test {
	public static void main(String[] args) {
		EjbWebServiceImplService service = new EjbWebServiceImplService();
		EjbWebServiceImpl portType = service.getEjbWebServiceImplPort();
		portType.addUser("刘德华");
	}
}

client—for ejb07_xfire:
new web service Project aaa -->Framework选择xfire-->next可以使用默认-->next 系统添加相应的jar包--finish
当做到这步的时候web.xml文件中会自动添加一个<servlet>的配置,我们可以启动Jboss服务器部署服务端的代码,然后用这个用<servlet>中的url-parttern的值来访问测试一下,能否生成wsdl描述文件格式:http://localhost:8080/ejb07/services/XFireServlet?wsdl
 接着继续
new Web service Client FrameWork选择XFire-->next 输入WSDL-URL并选择JavaPackage-->next 验证url-->next 系统加入jar包-->finish完成并自动生成相应的代码
找到自动生成的EjbWebServiceImplServiceClient文件下面有个main方法,然后调用service.addUser("张三")测试即可

上面介绍了用ejb做服务端,然后用axis jax-ws xfire做客户端实现的三种方式,我们并不建议使用ejb项目做为服务器端,为了开发webService程序还要建立一个ejb项目,有点大材小用


server 02:
用jax做为服务器端,建立一个项目
new web Service Project --->完成
写一个将来客户端要调用的方法 简单起见:
public class TestMethod {
	public String print(String name) {
		System.out.println("name:" + name);
		return name;
	}
}
src上 new Web Service-->next-->FrameWork选择jax-ws Strategy(策略)选择create web service from Java Class-->next选择TestMethod-->finish这个时候会给你刚才选择的TestMethod生成个代理类。jax-ws server端建立完毕。

server 03:
用XFire做服务器端,建立一个项目
new web Service Project -->frameWork选择 Xfire-->next....-->完成(可以建立好自己的包)
src 右键单击 -->new WebService--FrameWork选择XFire-->Strategy(策略)选择第二项-->next 输入WebService名称,根据这个名称自动生成接口(example方法)和实现类然后可以根据自己的需要更改方法名称及加入自己的业务逻辑.xfire的server端建立完毕


在此只提供server端的建立方法,对于这两种种的server的其他的三种客户端的建立方法与用ejb做server其他的三种方式做客户端的的方式基本类似,可以进行测试。

注意:在这三种分别做server端,然后用另外的三种方式测试加上ejb做server端共12次测试的过程中 可能会出现两个问题,一个是部署到jBoss启动的时候会报错,还有一种情况是传参数的时候服务端能掉用成功,但是接收到得参数总是null。暂时没有找到原因,可能和jboss以及jdk的版本有关!


分享到:
评论
2 楼 yechw 2010-03-08  
没看明白。。。
1 楼 Else 2010-03-08  
这贴也上首页,搞不懂

相关推荐

    WebService调用的几种方式

    WebService是Web应用程序之间的一种通信标准,它允许不同的系统通过网络交换数据和服务。本文将深入探讨在Java环境中调用WebService的五种主要方式:Axis、CXF、HttpClient、MyEclipse反向生成以及XFire。 1. Axis...

    PB 调用webservice 几种方式

    在PB 11.5中,有几种方法可以实现对Web服务的调用,以下将详细介绍这些方法。 1. **SOAP Toolkit**: PB 11.5包含了对SOAP(简单对象访问协议)的支持,通过使用SOAP Toolkit,开发者可以直接在PB中创建、调用和...

    使用C#创建webservice及三种调用方式

    在C#中,可以通过以下几种方式调用WebService: 1. **使用WSDL生成代理类**: - 在客户端项目中,使用“添加服务引用”功能,通过提供WebService的WSDL地址(通常是`...

    webservice四种发布方式及客户端调用

    ### WebService 四种发布方式及客户端调用详解 #### 一、概述 WebService 技术作为企业级应用间通信的重要手段之一,被广泛应用于不同的系统之间进行数据交换和服务交互。本文将详细介绍四种常见的 WebService ...

    java 调用webservice的几种方法总结

    "Java 调用 Webservice 的几种方法总结" Java 调用 Webservice 的几种方法总结中,主要介绍了使用 JDK Web 服务 API、Axis 和 XFire 等方法来调用 Webservice。下面将对每种方法进行详细的介绍。 使用 JDK Web ...

    java调用webservice几种方式代码

    Java调用Web服务(Web Service)是开发过程中常见的任务,主要用来实现不同系统间的通信与数据交换。在Java中,有多种方式可以调用Web Service,以下将详细介绍这些方法,并结合`ClientTest.java`文件名推测这是一个...

    WebService通用調用方式及源碼

    在IT领域,WebService是构建分布式应用程序和实现不同系统间集成的重要技术。 标题“WebService通用調用方式及源碼”指的是这个压缩包包含了一种通用的调用WebService的方法以及相关的源代码。这意味着,无论你面对...

    java WebService调用的几种方式详细源代码

    本篇文章将详细介绍Java中调用WebService的几种常见方法,并提供相应的源代码示例。 1. **SOAP(Simple Object Access Protocol)调用**: SOAP是WebService的主要通信协议,基于XML格式的数据交换。在Java中,...

    c++调用webservice(包括静态和动态以及webservice源码)

    WebService是一种基于XML的开放标准,允许不同平台和应用程序之间进行互操作。它通过HTTP协议传输数据,使用SOAP(Simple Object Access Protocol)作为消息格式,WSDL(Web Services Description Language)用于...

    C#_.NET_动态调用webservice的三种方式

    C# _.NET_动态调用webservice的三种方式 在本文中,我们将讨论如何动态调用WebService的三种方式。在某些情况下,我们可能需要在程序运行期间动态调用一个未知的服务。这可以通过使用.NET Framework的System.Web....

    底层Servlet实现WebService lzws.zip

    底层Servlet实现WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习

    基于WebService的SOA实现技术研究

    SOA是一种设计方法,它将业务应用设计为服务的集合,这些服务可以独立地进行更新和重用,而WebService是一种实现SOA的技术。WebService具有中立的技术标准、松散耦合性和通用协议规范,是实现SOA的主流技术之一。...

    基于axis2实现的webservice简单实现(客户端+服务端)。

    **Web服务**是一种在互联网上不同系统间交换数据的方式,它允许应用程序之间通过标准协议进行通信。Web服务通常使用SOAP(Simple Object Access Protocol)协议传输数据,并通过WSDL(Web Services Description ...

    jdk 6.0 自带webservice实现 实例

    1. Webservice 的基本概念:Webservice 是一种基于 XML 的远程调用协议,它允许不同的应用程序之间进行通信。 2. JDK 6.0 自带 Webservice 服务器:JDK 6.0 中自带了一个轻量级的 Webservice 服务器,可以用来发布...

    delphi调用Webservice实现增删改查功能的源代码示例

    Webservice是一种基于Web的接口,它允许不同系统之间通过HTTP协议交换数据,使得远程调用服务成为可能。 首先,了解Delphi调用Webservice的基本流程。这通常涉及到以下几个步骤: 1. 创建Webservice客户端代理:在...

    WebService二——使用Eclipse开发WebService及各种调用方式

    接下来,我们将探讨几种调用WebService的方式: 1. **SOAP协议调用**:使用SOAP协议调用WebService是最常见的方法。客户端通过发送一个SOAP消息到服务的URL来请求服务。可以使用Eclipse内置的Web Services Explorer...

    webservice

    WebService是一种标准的跨平台通信方式,它允许在不同技术栈之间进行数据交换和服务交互。通过WebService,可以在不同的应用程序之间共享业务逻辑、数据和功能,这有助于提高软件的可重用性和互操作性。 #### 二、...

    几种访问和发布webservice服务的示例

    这种服务可以被任何能够理解XML的系统调用,使得不同平台、不同编程语言的应用程序之间能够进行数据交换和协同工作。本文将详细探讨在Java环境下,通过JDK和CXF框架发布和调用Web服务的示例,以及如何访问网络上的...

Global site tag (gtag.js) - Google Analytics