以JWS的方式在TOMCAT上的部署WEBSERVICE
前言:
相信有越来越多的程序员将接触WEBSERVICE这一新的领域。但是,总感觉很迷茫。买本书来看看,介绍的好象都是XML的知识,什么WSDL等等。搞的我们云里雾里的。那么,我们不仿自己来试试看,自己写一些WEBSERVICE程序,看看它的运行结果是怎么样子的。本文档就是介绍怎么样在TOMCAT上部署简单的WEBSERVICE服务,客户端又是怎么样去访问这个服务,并得到自己想要的信息的。
AXIS是Apache SOAP的第三代产品。
下面介绍一下以JWS的方式在TOMCAT上的部署WEBSERVICE。
本文档的适用对象:
本文档适合于WEBSERVICE的初学者。但是,对TOMCAT有点了解,至少知道怎么启动TOMCAT。
关于该文档的约定:
TOMCAT.DIR 表示TOMCAT的安装路径。
webapps.dir 表示tomcat.dir/webapps路径。
axis.dir 表示tomcat.dir/webapps/axis
步骤:
一、下载并安装axis。
下载地址:http://xml.apache.org。下载并解压。把AXIS目录拷贝到webapps.dir目录下。一般,axis.dir的目录结构如下所示:
axis
--web-inf
----attachments
----classes
----jwsClasses
----lib
在axis.dir/web-inf目录下还有一个重要的文件server-config.wsdd。安装好AXIS之后,运行TOMCAT,即启动服务。启动完成之后,我门就可以使用我门的浏览器访问我门的服务。在地址栏里输入http://localhost:8080/axis,这时我们就可以看到Apache-AXIS的欢迎界面。假如,没有看到这个欢迎界面,那么,安装AXIS是失败的。
二、写服务端代码:
MyService.java:
java 代码
- public class MyService {
- public String sayHello(String name,boolean isMan) {
- if(isMan) {
- return "Hello,Mr "+name+"! Welcome to Webservice";
- } else {
- return "Hello,Miss "+name+"! Welcome to Webservice";
- }
- }
- }
注意:不要将MyService.java放在一个PACKAGE里面。
三、写客户端程序
java 代码
- package com.unimas.datacollection.webservices.client;
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
- import org.apache.axis.encoding.XMLType;
-
- import javax.xml.namespace.QName;
- import javax.xml.rpc.ParameterMode;
-
- public class Client
- {
- public static void main(String [] args)
- {
- try {
- String endpoint="http://localhost:8080/axis/MyService.jws";
-
- Service service = new Service();
- Call call = (Call) service.createCall();
-
- call.setTargetEndpointAddress( new java.net.URL(endpoint) );
- call.setOperationName( new QName("MyService", "sayHello") );
- call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);
- call.addParameter( "arg2", XMLType.XSD_BOOLEAN, ParameterMode.IN);
- call.setReturnClass(String.class);
-
- String man = (String) call.invoke( new Object[] { "syc",new Boolean(true) } );
- String women = (String) call.invoke( new Object[] { "yll",new Boolean(false) } );
- System.out.println("if is a man you will see:"+man);
- System.out.println("if is a women you will see:"+women);
- } catch (Exception e) {
- e.printStackTrace();
- System.err.println(e.toString());
- }
- }
- }
假如用addParameter方法来设置参数的话,必须使用setReturnType来设置返回类型。与之相等效的方法为setReturnClass。
还有一种客户端程序的写法,如下所示:
java 代码
- package com.unimas.datacollection.webservices.client;
-
- import org.apache.axis.client.Service;
- import org.apache.axis.client.Call;
-
- import javax.xml.namespace.QName;
-
- public class AnothClient {
- public static void main(String [] args) {
- try {
- String endpoint="http://localhost:8080/axis/MyService.jws";
-
- Service service = new Service();
- Call call = (Call) service.createCall();
-
- call.setTargetEndpointAddress( new java.net.URL(endpoint) );
- QName qname = new QName("sayHello");
- call.setOperationName(qname);
-
- String man = (String) call.invoke( new Object[] { "syc",new Boolean(true) } );
- String women = (String) call.invoke( new Object[] { "yll",new Boolean(false) } );
- System.out.println("if is a man you will see:"+man);
- System.out.println("if is a women you will see:"+women);
- } catch (Exception e) {
- System.err.println(e.toString());
- e.printStackTrace();
- }
- }
- }
这两中写法,所达到的效果是一样的。
四:部署
将MyService.java拷贝到axis.dir目录下面。并将起重命名为MyService.jws。这个时候,我门就把我们的服务器端部署好了,启动我们的服务器(执行startup.bat)。
五、运行客户端程序:
1、运行客户端程序Client。你将看到如下结果:
if is a man you will see:Hello,Mr syc! Welcome to Webservice
if is a women you will see:Hello,Miss yll! Welcome to Webservice
2、运行客户端程序AnothClient。你将看到如下结果:
if is a man you will see:Hello,Mr syc! Welcome to Webservice
if is a women you will see:Hello,Miss yll! Welcome to Webservice
终结:以上就是一个简单的WEBSERVICE部署的全过成。非常简单是不?但是,这里有个致命的确定,就是服务器程序不能放在一个包里面,也就是说不能使用PACKATE。优点就是简单实用。
参考资料:
Axis入门:www.csdn.net
Axis Documentation: http://ws.apache.org/axis/java/index.html
The Java Web Services Tutorial http://java.sun.com/webservices/docs/1.1/tutorial/doc/index.html
分享到:
相关推荐
在IT行业中,开发和部署Web服务是常见的任务之一,而Apache Axis2是一个广泛使用的Web服务框架,它提供了高效、灵活且可扩展的服务架构。本文将详细介绍如何在Windows和Unix/Linux环境下,利用Apache Axis2和Tomcat...
在实际应用中,Axis2的独立部署方式是非常常见且实用的,因为它可以减少对复杂应用服务器的依赖,简化服务部署流程。与Hessian接口实例相比,这可能意味着它涉及了HTTP协议下的SOAP服务,因为Hessian通常用于轻量级...
总结来说,Apache Axis2是强大的Web服务框架,提供了两种部署方式,分别是二进制包和WAR文件,适应不同的开发和部署需求。理解这两个包的用途和内部结构对于有效利用Axis2来创建和部署Web服务至关重要。
Axis1.4是Apache软件基金会开发的一个开源Java框架,用于创建和部署Web服务。这个框架在Web服务领域中扮演着重要角色,特别是在早期的Web服务实现中。标题和描述提到的知识点主要集中在如何使用Axis1.4来部署Web服务...
### 部署Axis2c Web Service:详细指南与步骤 #### Axis2c简介 Axis2c是一款由Apache Software Foundation开发的开源Web服务框架,它主要用于实现基于C语言的Web服务。Axis2c提供了丰富的功能,包括SOAP消息处理、...
【标题】"webservice之axis2方式开发总结" 在IT行业中,Web服务是不同系统间进行数据交换和功能调用的重要手段,而Axis2是Apache软件基金会提供的一个强大的Web服务框架,专门用于构建和部署Web服务。本篇将对基于...
axis使得webservice相当简单,半天就可以精通
本文将详细讲解使用Axis部署Web服务时涉及的关键资源库及其重要性。 首先,我们要明白Axis的核心功能:它是Java平台上的一套Web服务框架,支持SOAP(简单对象访问协议)和WSDL(Web服务描述语言),使得开发者能够...
Apache Axis1.4是Apache软件基金会开发的一款开源Web服务框架,它允许开发者快速、轻松地创建和部署Web服务。本文将详细探讨Axis1.4的部署、Web服务开发以及相关配置文件的使用。 首先,让我们了解如何使用Axis1.4...
在这个"axis部署WebServices 和 JAXB的使用"主题中,我们将深入探讨这两个关键技术及其协同工作。 首先,让我们关注Axis的部署过程。Axis1.3是Axis的一个较旧版本,但仍然适用于许多遗留系统。部署Web服务的基本...
标题“WebLogic部署Axis2”涉及的是在Oracle的WebLogic服务器上配置和部署Apache Axis2 Web服务引擎的过程。Apache Axis2是用于构建和部署Web服务的高性能、灵活且可扩展的框架。它允许开发人员创建、发布和消费Web...
【Axis2部署安装】 Axis2是一款流行的开源Web服务引擎,用于构建高效且可扩展的Web服务。本教程将详细介绍如何在MyEclipse 8.0环境中进行Axis2的部署和安装,以及创建并部署一个简单的Web服务。 **一、环境准备** ...
1.TOMCAT+AXIS的安装配置 首先机子上应该安装JDK1.5版本以上(带有XML解析包)。我这里是1.5.0.6 从APACHE的官方网站(www.apache.org)下载TOMCAT安装软件。下载版本要在4.0以上。这里用的是5.0版本。安装完后,...
### 学习在JBoss上部署Axis Web Service #### 知识点概述 本文主要介绍如何在JBoss应用服务器上部署Axis Web Service。通过详细步骤和背景知识的讲解,帮助读者掌握这一技能。 #### 一、环境搭建与准备工作 1. *...
### 部署WebService(eclipse-axis2)的关键步骤与实践 #### 一、概述 部署WebService涉及使用Eclipse集成开发环境结合Axis2框架来搭建Web服务。本文将详细介绍如何使用Eclipse 3.5.0 和 Axis2-1.3 版本进行...
在开发过程中, Axis1.x和Axis2.x的使用方式也有所不同。Axis1.x通常通过创建一个Java类并使用注解或配置文件来定义Web服务接口和实现。然后,使用 Axis工具将这个类转换为Web服务。而在Axis2.x中,服务接口和实现...
"将应用部署在Weblogic中与Axis2冲突的问题及解决方案" 问题描述 在将应用部署到Weblogic Server 10.3时,出现了一个错误,抛出ClassCastException异常,具体错误信息为: `java.lang.ClassCastException: ...
Axis2 的开发方式类似一个小型的应用服务器,Axis2 的开发包要以 WAR 的形式部署到 Servlet 容器中。Axis2 的 Web administrion 模块可以让我们动态的配置 Axis2。 CXF 是一种基于 XFire 和 Celtix 项目的结合产品...