`
weigang.gao
  • 浏览: 491512 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

webservice客户端连wsp端测试的2中方法客

 
阅读更多

 

        首先需要了解一下什么是WebService,WebService并不是一个软件,而是一个规范。这个规范与jsp,Servlet, EJB规范类似。在实际应用中会使用很多WebService的具体实现,Axis1.x就是其中之一。WebService规范使用了SOAP(Simple Object Access protol)协议,对于一般的开饭人员来说,并不需要了解SAOP协议。SOAP消息的内容是标准的XML格式,SOAP消息一般式通过HTTP协议进行传输的,但也可以通过其他的协议,如SMTP协议。

Axis1.x由Apache组织负责开发和维护。Axis1.x是第二代的WebService引擎,第一代是Apache SOAP,第二代是Axis1.x,第三代就是Axis2,Axis2采用了性能更为优越的XML解析技术,采用了面向组建的架构设计,从而具有更好的灵活性和可扩展性,并支持异步调用等高级特性

 

当客户在浏览器中输入如下URL会显示这个WebService的WSDL:

http://localhost:8099/axis2/services/Version?wsdl   这个WebService生成wsdl文档,这其实就是SOAP协议所描述的

客户端在使用WebService时需要通过上面这个URL来获得WSDL的内容,并使用WSDL来生成相应的客户端代理类(也就是我们常说的stub类)。Stub类可以隐藏访问WebService细节部分,使调用WebService服务器方法和调用本地代理类Stubs的方法一样(实际上客户调用本地代理类Stubs时会远webService服务器端上的相应被代理类上的方法)

 

 

第一种方法:

 

Axis支持三种WebService 的部署和开发,分别为: 
    1、Dynamic Invocation Interface(DII)方式 
    2、Dynamic Proxy方式 
    3、Stubs方式

Stubs方式与设计模式中的“远程代理”非常类型,建立学axis的朋友可以学学设计模式中的代理模式(远程代理)

 

在使用Stubs方式时,你可能会用到WSDL2Java.bat生成客户端代理类,WSDL2Java.bat内容如下

 set Axis_Lib=./lib
 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
 set Output_Path=D:\workspace\doradospace\ESS_DEV\src
 set Package=com.aegon_cnooc.ess.WebService.client
 %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package%     http://vm- shaswt93/WSP/services/allEntrance?wsdl
(把这个地址改成服务器上的地址,  如果用的是本地服务的话,可以改成http://localhost:8080/项目名/services/allEntrance?wsdl, 其中allEntrance为ServiceNamespace ) 
 pause;
  •  执行WSDL2Java.bat文件,生成代理类
  •  使用代理来测试如下
     AllEntranceLocator  allEntranceLocator = new AllEntranceLocator();
     AllEntranceHttpBindingStub allEntrance = (AllEntranceHttpBindingStub)allEntranceLocator.getallEntranceHttpPort();
     System.out.println(allEntranceLocator.getallEntranceHttpPortAddress());
     System.out.println(allEntrance.execute(requestXML));//requestXML是xml报文

 

第二种方法:是使用axis1.4中提供的类

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.BeforeClass;
import org.junit.Test;

public class HelloServerTest {
  
	private static String serviceName = null;
	private static String serviceUrl = null; 
		
	@BeforeClass
	public static void beforeClass(){
		//设置服务名
		serviceName = "HelloServer";
		/**
                1.设置服务URL
                2.如果是本地测试的话serviceUrl后面的"?wsdl" 可以保留,但是连WSP上测试"?wsdl"必须省略(实际上连WS那边生成的代理类是没有"?wsdl"的)
		3.serviceUrl = "http://localhost:8099/axis/services/"+serviceName+"?wsdl"; 
                */
             serviceUrl = "http://localhost:8099/axis/services/"+serviceName;//这种是通用的
	}	
	@Test
	public void testHelloServer() throws Exception{
		/**
		 * 创建调用对象
		 */
		Service service = new Service();
		Call call = (Call)service.createCall();//javax.xml.rpc.Call
		//设置URL
		call.setTargetEndpointAddress(serviceUrl);
		
		/**
		 * 设置调用WebService上的 远程方法sayHello
		 */
		call.setOperationName("sayHello");
		/**
		 * 1.执行远程调用,同时获得返回值
		 * 2.new Object[]{"gaoweigang"}给sayHello方法传参String
		 */
		String parameterName = "gaoweigang";
		String name = (String)call.invoke(new Object[]{parameterName});
		System.out.println(name);	
	}
	
}

 

 

 

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    cxf开发webservice客户端和服务器端文档

    cxf开发webservice客户端和服务器端 cxf(Apache CXF)是一款开源的WebService框架,用于开发webservice客户端和服务器端。它提供了许多有用的功能,如自动生成服务桩、客户调用桩和WSDL文档等,使得开发webservice...

    soapui生成webservice客户端代码

    soapui生成webservice客户端代码,比较详细的讲解了配置,以及生成客户端代码的步骤

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    C++通过gSOAP开发WebService客户端.docx

    C++通过gSOAP开发WebService客户端 ...这篇文章中的代码示例演示了使用gSOAP库开发WebService客户端的详细步骤和方法。开发者可以根据实际情况,选择合适的开发工具和方法来实现WebService客户端。

    webservice 客户端自动生成工具

    5. **集成与测试**:生成的代码需要被集成到你的Java应用程序中,然后你可以进行测试,确保能够正确地调用和接收WebService的响应。这一步骤包括设置任何必要的SOAP消息头,处理异常,以及验证返回的数据。 使用...

    C#.NET WebService 客户端+服务器

    本文将深入探讨"C#.NET WebService 客户端+服务器"的主题,介绍如何创建和调用Web服务,以及Web服务的三种访问方式。 首先,Web服务是一种基于标准协议(如SOAP和HTTP)的平台无关的通信机制,允许不同系统的应用...

    WebService客户端

    在分布式计算环境中,WebService客户端扮演着关键角色,使得各种应用程序能够跨平台、跨语言地共享数据和服务。 首先,理解WebService的基本概念是至关重要的。WebService是一种通过HTTP协议传输数据的标准化方式,...

    xfire+webService 客户端和服务器端的例子

    xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...

    WebService客户端调用WebService服务示例代码——java

    WebService客户端调用WebService服务示例代码,java代码,纯手工,包括直接httpClient直接发送Saop报文调用和利用wsimport -keep 生成客户端代码后调用两种方式的示例。因涉及商务账户密码隐私,因此代码中的有些账号...

    webservice客户端简单实例

    2. **使用JAX-WS工具生成客户端代码**:在Java环境中,我们可以使用JAX-WS(Java API for XML Web Services)中的工具,如`wsimport`,来根据WSDL文件自动生成客户端 stubs 和 skeletons。这些生成的代码封装了与...

    webservice 客户端 服务端实例 代码

    2. WebService客户端开发 客户端是调用服务端接口的程序,需要知道服务的地址(WSDL,Web Service Description Language)和接口方法。在Java中,可以使用JAX-WS的客户端API来生成并调用服务。客户端主要步骤如下: ...

    webservice客户端生成工具

    客户端生成工具是实现Web服务交互的关键组件,它能够帮助开发者自动创建与WebService接口进行通信的客户端代码,大大简化了开发流程。本文将详细介绍关于Web服务客户端生成工具的相关知识点。 1. **Web服务标准与...

    根据wsdl文件生成webservice客户端工具(java)

    根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....

    C# WebService 客户端 服务器 Json

    本主题聚焦于C#中的WebService客户端和服务器的交互,以及如何利用Json进行数据交换。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于编写而被广泛应用。 一、C# WebService简介 ...

    Java写WebService客户端

    它是Java WebService客户端开发中常用的组件之一。 #### 三、代码分析 根据给定的代码片段,我们可以将其划分为几个关键部分进行详细解读: ##### 1. 导入相关库 ```java import lrapi.lr; import java.io....

    webService通用客户端测试工具

    在本场景中,"webService通用客户端测试工具"是针对服务消费者端设计的,用于验证和调试Web服务功能的实用工具。 Web服务的实现通常遵循SOAP(Simple Object Access Protocol)或REST(Representational State ...

    Java生成WebService客户端代码操作步骤.txt

    Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤

    WebService客户端Demo

    在“DemoClient”中,客户端需要完成以下步骤来调用WebService: 1. **发现服务(Service Discovery)**:客户端通过WSDL(Web Service Description Language)文件找到服务的地址和方法。WSDL是XML格式,描述了服务...

    java版WebService生成客户端和服务端的实例

    在Java世界中,WebService是一种基于XML的开放标准技术,它允许不同系统间的应用程序进行通信,跨越不同的操作系统和编程语言。本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端...

    webService在客户端调用

    webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用...

Global site tag (gtag.js) - Google Analytics