- 浏览: 272402 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
tonytony3:
THANK YOU
Android多级树形菜单的实现 -
haiyang08101:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
求求你帮帮我:
怎么把我的空格也当成节点处理了?
java对xml文件做增删改查 -
求求你帮帮我:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
lpj13579:
多谢分享,学习学习
高仿小米盒子UI效果实现
使用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());
}
}
环境: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());
}
}
发表评论
-
Android 三大图片加载框架比较
2016-11-30 10:31 10881.哪三大图片加载框架? 1) Pi ... -
Java Calendar 类的时间操作
2016-06-01 21:02 668ava Calendar 类时间操作,这也许是创建日历和管理 ... -
获取电脑ip,所在省份城市
2014-08-27 09:45 683调用了腾讯的ip接口(http://fw.qq.com ... -
获取Android签名证书的sha1值
2014-08-23 23:14 664前言:今天开始研 ... -
java中Keytool的使用总结
2014-08-23 22:40 562J2SDK提供了keytool命令行工具,可以根据指定的参数 ... -
Java基础——Java语法基础(3)
2014-06-19 10:13 570程序控制流程 1、顺序结构 按顺序执行 2、i ... -
Java基础——Java语法基础(1)
2014-06-19 10:11 802Java代码基本格式 Java ... -
android MD5校验码的生成与算法实现
2014-06-17 10:58 887在Java中,java.security.Mes ... -
java中的字符串分割函数 split
2014-06-06 15:01 696Java中的我们可以利用sp ... -
java对xml文件做增删改查
2014-06-04 20:40 1840package com.wss; import jav ... -
获取网络的json文件 Gson解析json文件
2013-11-07 16:21 531/** * 获取网络的json文件 * @pa ... -
Java获取文件类型Mime Type的各种方法
2013-09-16 15:46 1145使用 javax.activation.MimetypesF ... -
Java栈与堆
2013-06-20 22:18 9251. 栈(stack)与堆(heap)都 ... -
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead.
2013-05-02 12:01 698解决Android requires compiler co ... -
java创建文件和目录
2013-04-25 10:30 610创建文件和目录的关键技术点如下: 1、File类的cr ... -
iava创建文件和目录
2013-04-24 19:42 796创建文件和目录的关键技术点如下: 1、File类的cr ... -
Java程序发送邮件的两种方法
2013-01-25 10:57 1873前一段时间我在博客中发表过Java接收解析邮件的程序 ... -
SharedPreferences保存数据
2013-01-24 15:09 889package com.test; import ja ... -
java 把logcat日志保存到SD里
2013-01-22 20:21 1041private void saveLogcat(){ ... -
Android开发系列:查看LogCat日志
2013-01-19 13:06 3450LogCat日志 1. Window & ...
相关推荐
其中,基于Java的WebService客户端开发更是占据了重要地位。本文将通过分析一个具体的Java WebService客户端示例代码,深入探讨其构建原理、关键技术点以及实际应用。 #### 二、核心概念解析 ##### 1. WebService...
使用cxf wsdl2java生成webservice客户端命令
Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤
本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端。 首先,让我们理解WebService的基本概念。WebService是一种基于HTTP协议的网络服务,它通过SOAP(Simple Object Access ...
总结,Java WebService客户端和服务端生成工具是开发Web服务不可或缺的辅助手段。理解并掌握这些工具的使用,能够大大提高开发效率,使开发者更加专注于业务功能的实现。通过批处理文件修改WSLD路径,可以灵活地适应...
综上所述,Java WebService接口开发涉及多个步骤,包括接口定义、服务实现、客户端代理生成、SOAP消息交换以及安全性和服务管理。掌握这些知识将有助于构建高效、可靠的分布式系统。通过实际案例的实践,你可以更...
Eclipse开发WebService服务端实例。开发客户端代码。超级简单易懂的实例。
本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF简介 CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*...
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
WebService客户端是调用这些服务的应用程序部分,而"WebService客户端自动生成工具"则是帮助开发者快速创建与WebService交互的代码的工具。在这种情况下,我们讨论的是一个使用Axis1.4批处理脚本来实现这个功能的...
2. WebService客户端开发 客户端是调用服务端接口的程序,需要知道服务的地址(WSDL,Web Service Description Language)和接口方法。在Java中,可以使用JAX-WS的客户端API来生成并调用服务。客户端主要步骤如下: ...
【Java调用WebService客户端详解】 在Java开发中,有时我们需要从客户端调用远程的WebService服务以获取或传递数据。本文将详细介绍如何使用Java进行WebService客户端的调用,并提供HttpGet、HttpPost、HttpSoap...
在开发WebService客户端时,有几种常见的实现方式: 1. **SOAP(简单对象访问协议)客户端**:SOAP是WebService最原始的数据交换格式,它基于XML,提供了一种标准的请求-响应模型。开发者可以使用SOAP库,如Java的...
- **调用服务方法**:通过代理类的对象调用JavaWebService中的公开方法,传入参数并接收返回值。 3. **处理数据类型**: C#和Java的数据类型可能会有所不同,比如Java的`Date`在C#中可能是`DateTime`。为了解决...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
**三、创建WebService客户端** 1. **生成客户端代理类** 使用JAX-WS的`wsimport`工具,根据服务的WSDL地址生成客户端所需的代理类和数据绑定类。在命令行中运行: ```bash wsimport -keep -s src -p ...
### WebService 客户端开发指南 #### 一、前提条件与访问方式 在开始讨论如何构建客户端之前,首先需要确保Web Service已经被成功部署到应用服务器上。本指南以Apusic应用服务器为例进行说明,但这些步骤对于...
二、WebService客户端开发步骤 1. **理解WSDL**:首先,你需要获取服务的WSDL文档,它是WebService接口的定义,描述了服务的端点、消息结构和操作。 2. **生成客户端代码**:使用CXF的wsdl2java工具,可以基于WSDL...
在Java开发中,Web服务(Web Service)是一种基于标准协议(如SOAP、REST等)的跨平台、跨语言通信方式,使得不同的系统间能够互相调用功能。本篇将详细介绍如何在Java环境中,利用WSDL(Web Service Description ...
本教程将聚焦于如何使用Java语言来编写一个WebService客户端。我们将不涉及过多理论,而是侧重实践,一步步教你如何实现。 首先,理解WebService客户端的基本工作原理是必要的。客户端通常会通过SOAP(Simple ...