`
zhongzhengmin
  • 浏览: 30294 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

用wsdd发布WebService

    博客分类:
  • JAVA
 
阅读更多

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

  • HelloWorldWSDD (wsdl)
    • getName
    • getAge
  • AdminService (wsdl)
    • AdminService
  • Version (wsdl)
    • getVersion

刚才在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方式发布WebService

    用wsdd(Web Services Deployment Descriptor)方式发布WebService.doc

    用wsdd开发webservice

    初学者可以通过这份资料了解到Web服务的基本概念,以及如何使用`wsdd`来创建、配置和发布Web服务。 在Java中,`wsdd`文件通常被用来描述服务端点的地址、服务接口、消息交换模式等信息。例如,你可以定义一个服务...

    axis1.4 部署webservice说明

    WSDD(Web Service Deployment Descriptor)是Axis使用的配置文件,用于描述Web服务的部署信息,如服务端点、传输协议、消息格式等。在Axis1.4中,可以通过`wsdd2java`工具,根据Java类自动生成对应的WSDD文件。这...

    webService 的wsdd文件

    只需要创建一个普通的web工程,然把该文件添加到工程中,把其中有注释的一段改成自己的public 类的public 方法,即可

    axis1.4发布webservice接口步骤(java).docx

    本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web服务的工具和库。本文将通过具体的步骤演示如何利用Eclipse集成...

    java实现webservice实例.doc

    wsdd文件是WebService的描述文件,用于定义WebService的接口和实现。它是Axis框架中的一部分,用于描述WebService的结构和行为。wsdd文件可以手动编写,也可以使用Axis工具来生成。 第四步:部署WebService 使用...

    webservice发布及调用

    ### WebService 发布及调用方法详解 #### 一、概述 WebService 技术作为一种标准的跨平台服务交互协议,在企业级应用集成中扮演着重要角色。本文将详细介绍 WebService 的四种常见发布方式:CXF、XFire、Axis2 和 ...

    WSDl生成WebService接口及调用

    通过@WebService注解标记接口,@WebMethod标记服务方法,然后使用服务发布工具暴露这个接口,如CXF的JAX-WS服务器。 4. 编写Test调用 测试Web服务通常涉及以下步骤: - 创建服务代理:使用服务的WSDL URL,生成...

    Eclipse+WebService服务端客户端开发

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

    使用myEclipse,tomcat和Axis发布webService.pdf

    ### 使用myEclipse, tomcat和Axis发布WebService详解 #### 一、准备工作: 1. **安装Axis**: - 访问官方网站 [http://ws.apache.org/axis/](http://ws.apache.org/axis/) 下载 Axis 包。 - 本示例中使用的是 `...

    EAS-WebService开发指南.pdf

    本文档旨在指导开发者如何使用EAS-WebService开发指南来构建Web服务。下面将对该指南中的每个步骤进行详细的解释和分析。 Step 1: 设计开发工具中新建一个Facade对象 在EAS-WebService开发中,首先需要在设计开发...

    使用myEclipse,tomcat 和Axis发布webService

    【使用myEclipse,tomcat 和Axis发布webService】教程 在IT行业中,Web服务是一种标准的通信方式,使得不同的应用程序之间能够交换数据。本文将详细介绍如何使用myEclipse集成开发环境,Apache Tomcat服务器以及...

    WSDD + TOMCAT 一键部署Webservices

    3、编写/wsdd/src/com/test/MyServices.java的方法,此类中的方法将被发布到Webservices中 4、启动tomcat,运行build.xml,运行正常结果如下: Buildfile: D:\java\wsdd\build.xml compile: [mkdir] Created dir: ...

    BOS开发WebService

    3. **生成 WebService 代码**:发布成功后,在指定的临时目录下会生成一个 wsdd 文件和一个包含 Java 代码的目录。例如,`D:\webservice\...

    server-config.wsdd

    `server-config.wsdd`是Web Service Deployment Descriptor的缩写,它是一个XML格式的文件,用于定义服务服务器的全局配置,包括服务的发布、传输协议、消息处理、安全策略等关键信息。此文件通常位于Axis的WEB-INF...

    WebServiceWSDD上传服务器部署server-config.wsdd文件

    在本主题中,我们将深入探讨如何使用WSDD(Web Services Deployment Descriptor)文件来部署一个WebService到服务器上,以及与之相关的`web.xml`配置文件。 **什么是WSDD?** WSDD,全称Web Services Deployment ...

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

    使用Axis,你可以通过server-config.wsdd配置文件来描述你的服务,包括服务的名称、接口、端点地址等信息。然后,运行Axis的wsdl2java工具,根据这个接口生成服务端代码和部署描述符。 服务端部署完成后,接下来是...

    webservice 发布步骤

    ### WebService 发布步骤详解 #### 一、概述 WebService是一种跨编程语言和操作系统平台的远程调用技术,它提供了一种标准的方式来实现系统间的通信。本文将详细介绍如何使用Apache Tomcat与Apache Axis来部署一个...

    WebService Axis 搭建开发

    二、用Java开发WebService Axis简单实例 在使用Axis开发Web服务时,有三种主要的方法: 1. **Dynamic Invocation Interface (DII)方式** - 动态调用接口,允许直接调用Web服务方法。 2. **Dynamic Proxy方式** - ...

Global site tag (gtag.js) - Google Analytics