1、首先在testWS工程创建一个java类,里面写简单的2个方法getName、getAge,代码如下:
package com.test.service;
public class HelloWorldService {
public String getName(String name) {
return "your name : " + name;
}
public int getAge(int age) {
return age + 10;
}
}
2、如果用wsdd方法首先需要定制我们的wsdd xml文件,这里命名为deploy.wsdd,创建在当前web工程的WEB-INF目录下,代码如下:
<?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">
<service name="HelloWorldWSDD" provider="java:RPC">
<parameter name="className" value="com.test.service.HelloWorldService " />
<!-- * 代表所有的方法都暴露 -->
<parameter name="allowedMethods" value="*" />
<parameter name="scope" value="request" />
</service>
</deployment>
service标签代表一个WebService服务,HelloWorldWSDD就是当前WebService的名称;provider是java的WebService类型,分别有: RPC、Document、Wrapped、Message、EJB、RMI;有兴趣的可以看看org.apache.axis.providers.java包下面的WebService的实现类或是文档;
parameter的参数className代表当前WebService的class类路径;
allowedMethods代表暴露的方法,那些方法在客户端可以调用;
<parameter name="scope" value="request" />
这个是当前WebService的作用域,它有3个值,分别是:request、session、application。
request代表为每个WebService SOAP的请求都产生一个服务对象,和Spring的scope很像,在服务请求频繁的话会消耗很多资源。
session 是给每个调用当前WebService的客户端创建一个服务对象
application 是个当前所有的请求创建一个服务对象。
3、写完配置后,就需要用axis提供的AdminClient工具类帮我们发布WebService,直到生成server-config.wsdd,步骤如下:
运行cmd命令,然后进入当前工程发布的目录,即%tomcat_home%/webapps/project/WEB-INF>
我的是:D:\tomcat-5.0.28\webapps\testWS\WEB-INF>
然后输入命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
这里的deploy.wsdd是我们刚才定制的wsdd文件,java当然是jvm的命令,-Djava.ext.dirs=lib设置当前命令的依赖包,AdminClient是axis提供的工具类。
有生成server-config.wsdd如果有这个文件就成功了,没有就失败了。如果失败了还有解决办法,首先你得启动tomcat,将我们的工程发布出去。然后在重复上面的命令,不行就换命令行代码如下:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/testWS/services/AdminService deploy.wsdd
-lhttp://localhost:8080/AxisWebService/services/AdminService是因为你的端口可能被axis占用了,我们将指定AdminService来完成转换,运行上面命令就没有问题了。
4、在WebBrowser的地址栏输入:
http://localhost:8080/testWS/servlet/AxisServlet
你就可以看到如下效果:
And now... Some Services
刚才在deploy.wsdd中指定的WebService就在上面出现了,还有暴露出来的方法。点击wsdl就可以看到刚才一样熟悉的wsdl的xml文档。
5、下面我们编写客户端代码调用上面的WebService,代码块和上面的jws几乎一样,只是参数,方法名称不同。
publicclass HelloWorldServiceClient {
publicstaticvoid main(String[] args) throws ServiceException, RemoteException {
//webService访问地址
String url ="http://localhost:8080/testWS/services/HelloWorldService";
//创建服务
Service service =new Service();
//创建调用句柄
Call call = (Call) service.createCall();
//设置请求地址
call.setTargetEndpointAddress(url);
/**
* 设置调用的方法和方法的命名空间;
* 当然null也可以,因为本身它就没有设置命名空间,一般方法的命名空间是
* 包名倒写组成,如com.hoo.service,ns=http://service.hoo.com
*/
call.setOperationName(new QName("http://service.test.com", "getName"));
/**
* 用call调用getName方法,设置请求的参数,返回的就是返回值了
*/
String result = (String) call.invoke(new Object[] { "jack" });
System.out.println(result);
call.setOperationName(new QName("http://service.test.com", "getAge"));
/**
* 用call调用getAge方法,设置请求的参数,返回的就是返回值了
*/
int resultAge = Integer.parseInt(call.invoke(new Object[] { 89 }).toString());
//服务器端+10
System.out.println(resultAge);
}
}
运行后结果如下:
your name : jack
99
call.setOperationName(new QName("http://service.test.com", "getName"));
这里设置命名空间,也可以用null代替,但是不能随意设置,有时候会出现异常。
相关推荐
用wsdd(Web Services Deployment Descriptor)方式发布WebService.doc
初学者可以通过这份资料了解到Web服务的基本概念,以及如何使用`wsdd`来创建、配置和发布Web服务。 在Java中,`wsdd`文件通常被用来描述服务端点的地址、服务接口、消息交换模式等信息。例如,你可以定义一个服务...
WSDD(Web Service Deployment Descriptor)是Axis使用的配置文件,用于描述Web服务的部署信息,如服务端点、传输协议、消息格式等。在Axis1.4中,可以通过`wsdd2java`工具,根据Java类自动生成对应的WSDD文件。这...
只需要创建一个普通的web工程,然把该文件添加到工程中,把其中有注释的一段改成自己的public 类的public 方法,即可
本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web服务的工具和库。本文将通过具体的步骤演示如何利用Eclipse集成...
wsdd文件是WebService的描述文件,用于定义WebService的接口和实现。它是Axis框架中的一部分,用于描述WebService的结构和行为。wsdd文件可以手动编写,也可以使用Axis工具来生成。 第四步:部署WebService 使用...
### WebService 发布及调用方法详解 #### 一、概述 WebService 技术作为一种标准的跨平台服务交互协议,在企业级应用集成中扮演着重要角色。本文将详细介绍 WebService 的四种常见发布方式:CXF、XFire、Axis2 和 ...
通过@WebService注解标记接口,@WebMethod标记服务方法,然后使用服务发布工具暴露这个接口,如CXF的JAX-WS服务器。 4. 编写Test调用 测试Web服务通常涉及以下步骤: - 创建服务代理:使用服务的WSDL URL,生成...
Eclipse开发WebService服务端实例。开发客户端代码。超级简单易懂的实例。
### 使用myEclipse, tomcat和Axis发布WebService详解 #### 一、准备工作: 1. **安装Axis**: - 访问官方网站 [http://ws.apache.org/axis/](http://ws.apache.org/axis/) 下载 Axis 包。 - 本示例中使用的是 `...
本文档旨在指导开发者如何使用EAS-WebService开发指南来构建Web服务。下面将对该指南中的每个步骤进行详细的解释和分析。 Step 1: 设计开发工具中新建一个Facade对象 在EAS-WebService开发中,首先需要在设计开发...
【使用myEclipse,tomcat 和Axis发布webService】教程 在IT行业中,Web服务是一种标准的通信方式,使得不同的应用程序之间能够交换数据。本文将详细介绍如何使用myEclipse集成开发环境,Apache Tomcat服务器以及...
3、编写/wsdd/src/com/test/MyServices.java的方法,此类中的方法将被发布到Webservices中 4、启动tomcat,运行build.xml,运行正常结果如下: Buildfile: D:\java\wsdd\build.xml compile: [mkdir] Created dir: ...
3. **生成 WebService 代码**:发布成功后,在指定的临时目录下会生成一个 wsdd 文件和一个包含 Java 代码的目录。例如,`D:\webservice\...
`server-config.wsdd`是Web Service Deployment Descriptor的缩写,它是一个XML格式的文件,用于定义服务服务器的全局配置,包括服务的发布、传输协议、消息处理、安全策略等关键信息。此文件通常位于Axis的WEB-INF...
在本主题中,我们将深入探讨如何使用WSDD(Web Services Deployment Descriptor)文件来部署一个WebService到服务器上,以及与之相关的`web.xml`配置文件。 **什么是WSDD?** WSDD,全称Web Services Deployment ...
使用Axis,你可以通过server-config.wsdd配置文件来描述你的服务,包括服务的名称、接口、端点地址等信息。然后,运行Axis的wsdl2java工具,根据这个接口生成服务端代码和部署描述符。 服务端部署完成后,接下来是...
### WebService 发布步骤详解 #### 一、概述 WebService是一种跨编程语言和操作系统平台的远程调用技术,它提供了一种标准的方式来实现系统间的通信。本文将详细介绍如何使用Apache Tomcat与Apache Axis来部署一个...
二、用Java开发WebService Axis简单实例 在使用Axis开发Web服务时,有三种主要的方法: 1. **Dynamic Invocation Interface (DII)方式** - 动态调用接口,允许直接调用Web服务方法。 2. **Dynamic Proxy方式** - ...