`

java webservice 客户端开发

    博客分类:
  • java
阅读更多
使用AXIS开发的基于JAVA的webservice:
环境:jdk1.6-u14  eclipse6.0  tomcat服务器 AXIS_1.4 (类包一定要齐)
环境配置:JAVA_HOME  path  classpath
AXIS_HOME=%CATALINA_HOME%\webapps\axis
AXIS_LIB=%AXIS_HOME%\lib          AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar; %AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar
CATALINA_HOME=D:\tomcat
本机软件位置:tomcat  d:\tomcat  AXIS解压后将webapps文件夹下axis文件夹复制到tomcat下 下载mail.jar/xmlsec-1.4.2.jar/activation.jar 三个jar包,并将它们拷贝到AXIS的lib文件夹下。
Eclipse下创建web工程,将AXIS的LIB文件夹下所有JAR包引入到工程中。(properties->java build path->add external jars)
新建包->com.server   在此包下新建类->WebSer.java  源码如下:
public class WebSer {
public String rename(String name){
return name+",你好!";
}
public String helloworld(){
return "OK";
}

public MeterBean getBean(String name){ //MeterBean为一个自定义的model
MeterBean mtb=new MeterBean();      //返回这种非基本类型,需要解析
mtb.setMeterName (name);

return mtb;
}
}            
   //该类即发布web服务的类,里面的方法为具体的web服务
发布webservice的重点,配置 server-config.wsdd  (新建file,命名server-config.wsdd)
源码如下:
<?xml version="1.0" encoding="UTF-8"?>  
<deployment xmlns="http://xml.apache.org/axis/wsdd/" 
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>  
 
  <service name="webser" provider="java:RPC">   
  <parameter name="className" value="server.WebSer"></parameter>
  <parameter name="allowedMethods" value="*"></parameter>
  <beanMapping languageSpecificType="java:DKH.Bean.MeterBean" qname="ns1:MeterBean"  xmlns:ns1="urn:BeanService" />
( 返回类型为自定义的model(MeterBean),所以需要序列化。如果有多个服务,需要返回多种model,在此处继续添加即可,只是ns得名要区别例如:
<beanMapping languageSpecificType="java:DKH.Bean.HourDataBean" qname="ns2: HourDataBean "  xmlns:ns2="urn:BeanService" />


  </service>

  <transport name="http">  
    <requestFlow>  
        <handler type="URLMapper"/>  
    </requestFlow>  
  </transport>  
</deployment> 
7、同时需要配置WEB-INF文件夹下的web.xml文件(将对AXIS的引用添加进去(实际是作为servlet))          源码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>  
   <servlet-name>AxisServlet</servlet-name>  
   <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  
</servlet>  
   
<servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>/servlet/AxisServlet</url-pattern>  
</servlet-mapping>  
   
<servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>*.jws</url-pattern>  
</servlet-mapping>  
   
<servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>/services/*</url-pattern>  
</servlet-mapping>  
</web-app>
附录:(MeterBean源码如下:)
public class MeterBean implements Serializable {   //一定要序列化
private static final long serialVersionUID = 1L;
private Integer meterId;
private Integer stationId;
private String meterName;
private Integer clinetId;
private Integer cjqid;
private Integer terminalId;
private Integer meterPosition;
/** default constructor */
public MeterBean() {
}
public Integer getMeterId() {
return this.meterId;
}
public void setMeterId(Integer meterId) {
this.meterId = meterId;
}
public Integer getStationId() {
return this.stationId;
}
public void setStationId(Integer stationId) {
this.stationId = stationId;
}
public String getMeterName() {
return this.meterName;
}
public void setMeterName(String meterName) {
this.meterName = meterName;
}
public Integer getClinetId() {
return this.clinetId;
}
public void setClinetId(Integer clinetId) {
this.clinetId = clinetId;
}
public Integer getCjqid() {
return this.cjqid;
}
public void setCjqid(Integer cjqid) {
this.cjqid = cjqid;
}
public Integer getTerminalId() {
return this.terminalId;
}
public void setTerminalId(Integer terminalId) {
this.terminalId = terminalId;
}
}




制作访问此web服务的客户端程序(JAVA)
新建web工程,引入axis的jar包,新建package-com.axis.client,新建类-WebServiceTest
源码如下:
package com.axis2.client;

import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.TypeMapping;
import org.apache.axis.encoding.TypeMappingRegistry;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import DKH.Bean.*;
public class WebServiceTest {
public static void main(String args[]){
WebServiceTest web=new WebServiceTest();
try {
web.testInvoke();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public String testInvoke() throws Exception {
//标识WebService的具体路径  
        String endpoint = "http://192.168.1.53:8088/webpub/services/webpub";  
        //创建Service实例  
        Service service = new Service();  
        //通过Service实例创建Call实例  
        Call call = (Call)service.createCall();  
        //将WebService的服务路径加入到Call实例中,并为Call设置服务的位置  
        URL url = new URL(endpoint);  
        call.setTargetEndpointAddress(url);  
        //调用WebService方法  
  call.setOperationName("getBean");   //设置服务名 getBean为方法名
//序列化要用
QName qn=new QName("urn:BeanService","MeterBean");
call.registerTypeMapping(MeterBean.class,qn,new BeanSerializerFactory(MeterBean.class,qn),new BeanDeserializerFactory(MeterBean.class,qn));
//调用WebService传入参数
MeterBean  meter=( MeterBean)call.invoke(new Object[] {“abcd”});  
        System.out.println(meter.getMeterName()); 
}
}
分享到:
评论

相关推荐

    Java写WebService客户端

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

    使用cxf wsdl2java生成webservice客户端

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

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

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

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

    本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端。 首先,让我们理解WebService的基本概念。WebService是一种基于HTTP协议的网络服务,它通过SOAP(Simple Object Access ...

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

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

    java webService接口开发案例

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

    Eclipse+WebService服务端客户端开发

    Eclipse开发WebService服务端实例。开发客户端代码。超级简单易懂的实例。

    cxf 开发webservice客户端

    本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF简介 CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*...

    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客户端时,有几种常见的实现方式: 1. **SOAP(简单对象访问协议)客户端**:SOAP是WebService最原始的数据交换格式,它基于XML,提供了一种标准的请求-响应模型。开发者可以使用SOAP库,如Java的...

    C#调用JavaWebService(客户端)

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

    Java cxf开发webservice,分别有客户端和服务端

    2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...

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

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

    WebService 客户端开发指南

    ### WebService 客户端开发指南 #### 一、前提条件与访问方式 在开始讨论如何构建客户端之前,首先需要确保Web Service已经被成功部署到应用服务器上。本指南以Apusic应用服务器为例进行说明,但这些步骤对于...

    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客户端代码(Java版本)

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

Global site tag (gtag.js) - Google Analytics