`
ihylyj
  • 浏览: 2034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在axis中通过wsdd文件发布和卸载webservice--补充

阅读更多
2007-02-28  原文链接  http://yangyang.iteye.com/blog/56552
这是篇非常适合初学者的文章,我
在axis中通过wsdd文件发布和卸载webservice

关键字: webservice
在上一篇<>中我介绍了一种简单webservice的发布方式-jws。
     这种发布方式非常的敏捷!但有它的局限性—你必须知道webservice的源代码。有时候这个的确很让人郁闷!比如:的webservice被打成了一个jar包,你并没有源代码。或者这个webservice根本就不是你的公司开发的。这时你发布这个webservice就会变得很困难。axis针对这种情况提供了wsdd文件的方式来发布和撤销webservice。
     现在我们来通过一个wsdd文件来对wsdd有个初步的认识。注意:在开始下面的步骤前请安装axis.具体安装请看上一篇
xml 代码
<deployment xmlns="http://xml.apache.org/axis/wsdd/" 
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> 
            <service name="MyService" provider="java:RPC"> 
                     <parameter name="className" value="samples.userguide.example3.MyService"/> 
                      <parameter name="allowedMethods" value="*"/> 
            service> 
deployment> 
最外面的元素告诉我们这是一个wsdd发布项,并且定义了java的命名空间,service  元素定义了我们的service.java:RPC定义了axis的provider。parameter name定义了webservice类名及所在包的位置。allowedMethods value等于*,表示MyService的所有方法都可以被调用。
         了解了wsdd文件,我们来认识一个非常有用的工具AdminClient.正式通过它我们才能通过wsdd文件发布我们的应用。它的全路径是org.apache.axis.client.AdminClient,在axis.jar包中。在使用这个工具前我们必须把相应的jar包加入classpath。如:axis.jar..。如果你做了<>的练习则这一步就不用再做了。
        我们首先进入webservice所在源文件的目录找到deploy.wsdd文件。然后键入如下命令:
           java org.apache.axis.client.AdminClient deploy.wsdd
         (如果提示错误,请检查你是否将必须的jar包加入classpath)
----------------------------------------------------------------
补充如下:
E:\soft\axis-1_3\samples\userguide\example3>java org.apache.axis.client.AdminCli
ent -l http://localhost:8090/axis/services/MyService deploy.wsdd
Processing file deploy.wsdd
<Admin>Done processing</Admin>
才会成功,不知道为什么,可能是我的环境差异造成的吧
2009-05-18
----------------------------------------------------------------
         如果成功则会显示 :
<Admin>Done processingAdmin> 
        下面来解释AdminClient 所做的工作。AdminClient 首先会在axis.jar所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。
如图:

xml 代码
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"> 
<globalConfiguration> 
  <parameter name="sendMultiRefs" value="true"/> 
  <parameter name="disablePrettyXML" value="true"/> 
  <parameter name="adminPassword" value="admin"/> 
  <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/> 
  <parameter name="dotNetSoapEncFix" value="true"/> 
  <parameter name="enableNamespacePrefixOptimization" value="false"/> 
  <parameter name="sendXMLDeclaration" value="true"/> 
  <parameter name="sendXsiTypes" value="true"/> 
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> 
  <requestFlow> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="session"/> 
   handler> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="request"/> 
    <parameter name="extension" value=".jwr"/> 
   handler> 
  requestFlow> 
globalConfiguration> 
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> 
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> 
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> 
<service name="AdminService" provider="java:MSG"> 
  <parameter name="allowedMethods" value="AdminService"/> 
  <parameter name="enableRemoteAdmin" value="false"/> 
  <parameter name="className" value="org.apache.axis.utils.Admin"/> 
  <namespace>http://xml.apache.org/axis/wsdd/namespace> 
service> 
<service name="Version" provider="java:RPC"> 
  <parameter name="allowedMethods" value="getVersion"/> 
  <parameter name="className" value="org.apache.axis.Version"/> 
service> 

<service name="MyService" provider="java:RPC"> 
  <parameter name="allowedMethods" value="*"/> 
  <parameter name="className" value="samples.userguide.example3.MyService"/> 
service> 
<transport name="http"> 
  <requestFlow> 
   <handler type="URLMapper"/> 
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> 
  requestFlow> 
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> 
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> 
transport> 
<transport name="local"> 
  <responseFlow> 
   <handler type="LocalResponder"/> 
  responseFlow> 
transport> 
deployment> 
xml 代码
我们来访问一下看看:
java samples.userguide.example3.Client -lhttp://localhost:8080/axis/services/MyService "test me!"

You typed : test me!   
返回正确,部署成功!
         如果你要卸载一个webservice也很简单!我们首先定义一个undeploy.wsdd
<undeployment xmlns="http://xml.apache.org/axis/wsdd/"> 
<service name="MyService"/> 
undeployment> 
xml 代码<service name="MyService"></service>
进入webservice所在源文件的目录找到undeploy.wsdd文件。然后键入如下命令:
              java org.apache.axis.client.AdminClient  undeploy.wsdd
(如果提示错误,请检查你是否将必须的jar包加入classpath)
        
         如果成功则会显示 :
<Admin>Done processingAdmin> 

在看server-config.wsdd已经删除了原来service的定义
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"></deployment>
xml 代码
<?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"> 
<globalConfiguration> 
  <parameter name="sendMultiRefs" value="true"/> 
  <parameter name="disablePrettyXML" value="true"/> 
  <parameter name="adminPassword" value="admin"/> 
  <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/> 
  <parameter name="dotNetSoapEncFix" value="true"/> 
  <parameter name="enableNamespacePrefixOptimization" value="false"/> 
  <parameter name="sendXMLDeclaration" value="true"/> 
  <parameter name="sendXsiTypes" value="true"/> 
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> 
  <requestFlow> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="session"/> 
   </handler> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="request"/> 
    <parameter name="extension" value=".jwr"/> 
   </handler> 
  </requestFlow> 
</globalConfiguration> 
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> 
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> 
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> 
<service name="AdminService" provider="java:MSG"> 
  <parameter name="allowedMethods" value="AdminService"/> 
  <parameter name="enableRemoteAdmin" value="false"/> 
  <parameter name="className" value="org.apache.axis.utils.Admin"/> 
  <namespace>http://xml.apache.org/axis/wsdd/</namespace> 
</service> 
<service name="Version" provider="java:RPC"> 
  <parameter name="allowedMethods" value="getVersion"/> 
  <parameter name="className" value="org.apache.axis.Version"/> 
</service> 
<!-- 
原来的service的定义已经删除! 
--> 
<transport name="http"> 
  <requestFlow> 
   <handler type="URLMapper"/> 
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> 
  </requestFlow> 
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> 
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> 
</transport> 
<transport name="local"> 
  <responseFlow> 
   <handler type="LocalResponder"/> 
  </responseFlow> 
</transport> 
</deployment> 

       看是不是很简单,不仅省去了ctrl+c和ctrl+v,还防止了手动配置出错。一举两得岂不快哉!
分享到:
评论

相关推荐

    webService-Axis-tomcat发布教程.docx编程资料

    ### WebService-Axis-Tomcat 发布教程详细解析 #### 一、准备工作 在开始发布 WebService 之前,首先需要完成一系列的准备工作。 ##### 1. 安装 Axis - **下载 Axis 包**:访问 Apache Axis 的官方网站 ...

    java-webservice-axis-例子

    在这个例子中,我们关注的是使用Apache Axis1.4库来创建和消费Web服务。Apache Axis是Java社区中最常用的Web服务工具之一,它提供了用于生成和部署Web服务的框架。 在Java中,Web服务通常通过SOAP(Simple Object ...

    server-config.wsdd

    其中,`server-config.wsdd`文件就是Apache Axis(一个开源的Web服务框架)中的核心配置文件,专门用于管理Web服务的部署和服务端的配置。本文将详尽解析`server-config.wsdd`的内涵及其重要性,旨在帮助读者深入...

    axis1.4 部署webservice说明

    在Axis1.4中,可以通过`wsdd2java`工具,根据Java类自动生成对应的WSDD文件。这一步骤允许开发者快速定义服务的行为和结构,而无需手动编写XML配置。 3. **生成测试类**: 使用Axis1.4,可以利用`java2wsdl`工具...

    Axis webService 教程.pdf

    本文详细介绍了使用Apache Axis发布和管理Web服务的方法,包括即时发布和定制发布两种方式,以及WSDD文件的高级配置选项。此外,还讨论了如何传递JavaBean、自定义异常以及文件等内容。通过这些知识点的学习,开发者...

    SpringBoot开发WebService之Axis示例

    5. **配置Axis**:在SpringBoot的配置文件`application.properties`或`application.yml`中,我们可以配置Axis的启动和端口等信息。 6. **编写WSDL**:如果还没有WSDL,我们可以手动编写或使用Axis工具从接口生成。...

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

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

    java-webservice-axis2简单开发实例.doc

    在Java世界中,开发Web服务经常会选择使用Apache Axis2框架,它是一个高效且灵活的Web服务引擎,允许开发者轻松地创建和部署Web服务。本篇文章将详细介绍如何使用Java和Axis2来创建一个简单的WebService服务。 ### ...

    WSDD方式发布WebService

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

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

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

    springboot使用axis1.4的demo

    4. **发布Web服务**:在Spring Boot的初始化或启动过程中,使用Axis的API加载WSDD文件并发布Web服务。这通常在`@PostConstruct`注解的方法中完成。 5. **配置Spring Boot**:确保Spring Boot应用程序可以正确地暴露...

    lfieray-webservice-调用

    其默认配置存储在`server-config.wsdd`文件中,该文件位于`/portal/tunnel-web/docroot/WEB-INF`目录下。在Ant视图中,当你双击目标部署时,`/portal/tunnel-web/docroot/WEB-INF`下的`server-config.wsdd`文件会与`...

    Springboot集成axis1.4的demo

    以下将详细讲解如何在Spring Boot应用中集成Axis1.4以及使用wsdd文件发布Web服务。 首先,了解 Axis1.4:Axis 是一个开源的Java Web服务框架,它允许开发者快速地创建和部署Web服务。Axis1.4是该框架的一个较老版本...

    axis1-WebService

    可以通过编写特定的Handler或者在Wsdd文件中配置异常处理策略来实现。 **七、传递文件信息** Axis支持文件作为Web服务调用的输入和输出。这通常涉及到MIME多部分编码,使文件能够以二进制形式安全地在网络上传输...

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

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

    Axis和WebService配置使用之Hello

    标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...

    利用Axis构建Webservice

    - **文件路径**:假设Java源代码存放在`D:\workspace\test\`目录,而Axis相关包文件则位于`D:\workspace\test\WEB-INF`目录。 - **编写wsdd文件**: - `deploy.wsdd`文件是用于部署Web服务的核心配置文件。 - ...

    WebService Axis 搭建开发

    - 在Tomcat环境中发布Web服务,需要两个配置文件:`web.xml`和`server-config.wsdd`。 - `web.xml`是Web应用的配置文件,用来声明`server-config.wsdd`,后者是Web服务的发布配置。 - `server-config.wsdd`定义了...

    Axis WebService 技术指南,开发文档

    通过本指南,你将对 Axis WebService 开发有深入的理解,能够熟练地创建、发布和调试 WebServices,同时也能解决跨平台调用中可能遇到的问题。在实际工作中,结合 Axis 的各种工具和特性,你将能够构建出高效、稳定...

Global site tag (gtag.js) - Google Analytics