`

基于Java的WebService的客户端开发

 
阅读更多

1.JAX-WS

选择“发布”按钮的左边第二个——》选择New Web Service Client——》选择Project与Framework——》在WSDL URL中输入WSDL地址,选择Java source folder与 Java package——》下一步——》会生成很多客户端文件

再新建一个测试类,写上main方法,在main方法中写上

StorageYKTService service= new StorageYKTService();

StorageYKTServiceImplDelegate delegate=service.getStorageYKTService();

String result=delegate.getDoorStatus("200001", "1", "001");

System.out.println(result);

 

2.axis

package com.talkweb.ecard.storage.action;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class StorageYKTClient {

public static void main(String[] args) throws Exception {

String url="http://116.55.248.117:8090/HelloWorldService/services/HW";
//String nameSpaceUri ="http://server";
String nameSpaceUri ="";
Service service = new Service();
Call call = null;
call = (Call)service.createCall();

call.setOperationName(new QName(nameSpaceUri,"syncRecord"));
//call.setOperationName("syncRecord");
call.setTargetEndpointAddress(new java.net.URL(url));
Object[] params = new Object[6];
params[0] = "234";
params[1] = "12";
params[2] = "23";

params[3] = "234";
params[4] = "12";
params[5] = "23";

String ret = (String)call.invoke(params);
System.out.println("-------------ret:"+ret+"-----------");

}

}

也可以这么写

package com.talkweb.ecard.storage.action;

import java.util.Calendar;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class StorageYKTClient {

public static void main(String[] args) throws Exception {

try {
String endpoint = "http://116.55.248.117:8090/HelloWorldService/services/HW";

Service service = new Service();

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

call.setTargetEndpointAddress( new java.net.URL(endpoint));

long timeStart, timeEnd;

String mobile="18777171717";
String name="aaa";
String openDate="20120303122201";
String doorId="1";
String dir="1";
String key="1";
int a = 9;

call.setOperationName("syncRecord");

call.addParameter("mobile",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("name",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("openDate",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("doorId",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("dir",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("key",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

call.setReturnType( XMLType.XSD_STRING);

timeStart = Calendar.getInstance().getTimeInMillis();

for(int i=0;i<5;i++) {

String ret = (String)call.invoke( new Object[] {mobile,name,openDate,doorId,dir,key} );

a++;

System.out.println("Got result : " + ret);

}

timeEnd = Calendar.getInstance().getTimeInMillis();

System.out.println(Long.toString( (timeEnd - timeStart)));

System.out.println(Float.toString(1000 * ( (float) 1) /(float) (timeEnd - timeStart)));
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

 

}

}

 

还可以这么写

package com.talkweb.ecard.storage.action;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class StorageYKTClient {

public static void main(String[] args) throws Exception {
String endpoint = "http://116.55.248.117:8090/HelloWorldService/services/HW";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("syncRecord");

String mobile="18777171717";
String name="aaa";
String openDate="20120303122201";
String doorId="1";
String dir="1";
String key="1";
String result="11";

result =(String)call.invoke(new Object[]{mobile, name, openDate, doorId, dir, key});
System.out.println(result);
}

}

3.xfire

1.在自己的项目中新建一个接口,接口名称随便写,方法名、方法参数、返回值类型必须与服务器的一致

接口:

package com.talkweb.ecard.storage.service;

public interface SyncRecord {
public String syncRecord(String mobile,String name,String openDate,String doorId,String dir,String key);
}

 

客户端:

package com.talkweb.ecard.storage.action;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.talkweb.ecard.storage.service.SyncRecord;

public class StorageYKTClient {

public static void main(String[] args) throws Exception {

String result="";
String serviceUrl = "http://116.55.248.117:8090/HelloWorldService/services/HW";
Service serviceModel = new ObjectServiceFactory().create(SyncRecord.class);
SyncRecord syncrecord=null;
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());

try {
syncrecord = (SyncRecord)factory.create(serviceModel, serviceUrl);
} catch (Exception ex) {
//ex.printStackTrace();
}
result=syncrecord.syncRecord("18711090909", "aaa", "20120305185445", "1", "1","1");
System.out.println("----------------------------------------------------------------------------");
System.out.println(result);
System.out.println("----------------------------------------------------------------------------");

}
}

也可以不用写接口

package com.talkweb.ecard.storage.action;
import java.net.URL;

import org.codehaus.xfire.client.Client;

public class StorageYKTClient {

public static void main(String[] args) throws Exception {

Client client = new Client(new URL(
"http://116.55.248.117:8090/HelloWorldService/services/HW?wsdl"));
Object url[] = client.invoke("syncMember",new Object[]{"1","13312121212","xiao","2","2"});

System.out.println(url[0].toString());

}

}

 

分享到:
评论

相关推荐

    Java写WebService客户端

    其中,基于Java的WebService客户端开发更是占据了重要地位。本文将通过分析一个具体的Java WebService客户端示例代码,深入探讨其构建原理、关键技术点以及实际应用。 #### 二、核心概念解析 ##### 1. WebService...

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

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

    java webservice 客户端、服务端生成工具

    总结,Java WebService客户端和服务端生成工具是开发Web服务不可或缺的辅助手段。理解并掌握这些工具的使用,能够大大提高开发效率,使开发者更加专注于业务功能的实现。通过批处理文件修改WSLD路径,可以灵活地适应...

    java webService接口开发案例

    综上所述,Java WebService接口开发涉及多个步骤,包括接口定义、服务实现、客户端代理生成、SOAP消息交换以及安全性和服务管理。掌握这些知识将有助于构建高效、可靠的分布式系统。通过实际案例的实践,你可以更...

    cxf 开发webservice客户端

    2. 生成客户端代码:CXF提供了一个工具,可以基于WSDL(Web服务描述语言)文件自动生成客户端代理类。运行以下命令: ```bash java -jar cxf-codegen-plugin-3.4.x.jar -wsdl ...

    Java webservice cxf客户端调用demo和服务端

    Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...

    webservice 客户端自动生成工具

    WebService客户端是调用这些服务的应用程序部分,而"WebService客户端自动生成工具"则是帮助开发者快速创建与WebService交互的代码的工具。在这种情况下,我们讨论的是一个使用Axis1.4批处理脚本来实现这个功能的...

    webservice 客户端 服务端实例 代码

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

    Java调用WebService(客户端)

    【Java调用WebService客户端详解】 在Java开发中,有时我们需要从客户端调用远程的WebService服务以获取或传递数据。本文将详细介绍如何使用Java进行WebService客户端的调用,并提供HttpGet、HttpPost、HttpSoap...

    WebService客户端

    WebService客户端是基于Web服务技术的一种应用程序,它允许不同的系统之间通过互联网进行通信和交互。在分布式计算环境中,WebService客户端扮演着关键角色,使得各种应用程序能够跨平台、跨语言地共享数据和服务。 ...

    C#调用JavaWebService(客户端)

    - **调用服务方法**:通过代理类的对象调用JavaWebService中的公开方法,传入参数并接收返回值。 3. **处理数据类型**: C#和Java的数据类型可能会有所不同,比如Java的`Date`在C#中可能是`DateTime`。为了解决...

    java6中超级简单的WebService服务器和客户端实现

    **三、创建WebService客户端** 1. **生成客户端代理类** 使用JAX-WS的`wsimport`工具,根据服务的WSDL地址生成客户端所需的代理类和数据绑定类。在命令行中运行: ```bash wsimport -keep -s src -p ...

    WebService开发客户端 cxf方式

    二、WebService客户端开发步骤 1. **理解WSDL**:首先,你需要获取服务的WSDL文档,它是WebService接口的定义,描述了服务的端点、消息结构和操作。 2. **生成客户端代码**:使用CXF的wsdl2java工具,可以基于WSDL...

    java中webService生成客户端

    在Java开发中,Web服务(Web Service)是一种基于标准协议(如SOAP、REST等)的跨平台、跨语言通信方式,使得不同的系统间能够互相调用功能。本篇将详细介绍如何在Java环境中,利用WSDL(Web Service Description ...

    webservice客户端简单实例

    总结来说,本实例涉及的是在Windows 7环境下,使用Apache Tomcat和JDK创建一个基于JAX-WS的WebService客户端。这个过程包括获取WSDL文件,生成客户端代码,编写应用程序,部署和运行。理解并掌握这些步骤对于开发与...

    清风教你手把手-写WebService客户端代码(Java版本)

    本教程将聚焦于如何使用Java语言来编写一个WebService客户端。我们将不涉及过多理论,而是侧重实践,一步步教你如何实现。 首先,理解WebService客户端的基本工作原理是必要的。客户端通常会通过SOAP(Simple ...

    webservice客户端生成工具

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

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    本教程将讲解如何使用Spring Boot集成Apache CXF(一个强大的Java Web Service框架)来构建服务端,并探讨两种Java客户端调用Web Service接口的方法。 首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过...

    WebService客户端Demo

    本示例“WebService客户端Demo”将着重讲解如何利用SOAP(Simple Object Access Protocol)协议实现客户端调用,这是一种基于XML的通信协议,能够保证数据的稳定性和可读性。 首先,理解WebService的核心概念:服务...

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

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

Global site tag (gtag.js) - Google Analytics