• 部署web service的方式一般有两种:

1. 编写java源文件,将文件的java后缀改为jws,然后部署到webapps/axis目录下,axia引擎可以直接执行源文件中定义的java方法为web service;另外,要让你的web应用服务器识别jws文件需要确定已在web.xml中配置servlet(如果你依照本文方法采用拷贝axis目录为工作起点的话,可以不考虑这步):

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>
        org.apache.axis.transport.http.AxisServlet
    </servlet-class>
</servlet>

<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>
2. 编写web service 部署描述文件(wsdd)。这种方法适用与手头没有java源文件或只需要发布java类中某些特定方法为web service的情况,而且还可以通过在wsdd文件中配置序列化、反序列化器,扩展SOAP定义的基本数据类型,使web service支持复杂数据类型、解决异构平台web service交互问题。可见,此种方法较jws方法更强大、可控。

具体过程可归结为如下两步:
1). 部署classes和jar文件
2). 通知axisEngine加载新服务

step1:

在WEB-INF/classes目录下放置已编译的java class文件
 如果java代码已编译为jar文件,可以直接放到WEB-INF/lib下
step2:

编写deploy.wsdd文件,可以参考axis压缩包种samples\stock目录下的例子。下面是一个最简单的范例:

<deployment name="MyService1" xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="MyService1" provider="java:RPC">
  <parameter name="className" value="MyService1"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
</deployment>

deploy.wsdd用来发布web service,aixs通常会将发布的服务(除jws文件定义的)保存到全局配置文件WEB-INF/server-config.wsdd中

执行java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd

定义AXISCLASSPATH环境变量,打开一个新的命令提示符窗口,输入下列命令(先定义环境变量,才能执行上面命令):

set AXIS_HOME=c:\axis
set AXIS_LIB=%AXIS_HOME%\lib
set 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

Trouble shooting:

1. 以上设置环境变量的命令如果直接拷贝本文给出的到你本地执行,注意你本地文件commons-discovery.jar和commons-logging.jar是否有版本号,如果有,以上命令需要做相应修改;

2. axis建议的XML parser为Xerces,环境变量给出的也使用这个,而不是java默认的Crimson parser,所以你可能需要到Xerces站点下载此组件,拷贝到WEB-INF/lib下;

3. 执行以上命令要先确保Tomcat已启动,否则会出现Connection refused错误。

4. 笔者lib目录下有的jar包为activation.jar axis.jar commons-discovery.jar commons-logging.jar jaxrpc.jar log4j-1.2.9.jar mail.jar NetComponents.jar portal-client.jar saaj.jar wsdl4j.jar xercesImpl.jar xml-apis.jar,共13个,可以对比你是否缺少,否则可能出现java.lang.NoClassDefFoundError错误。

顺便提一下,不执行AdminClient工具部署web service这步也行,替代的方法是直接编辑server-config.wsdd文件,然后重新启动web服务器。

  • 取消已发布的web service:

编写undeploy.wsdd文件,内容如下

<undeployment xmlns="http://xml.apache.org/axis/wsdd/">

<service name="MyService1"/>

</undeployment>

执行如下命令

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService undeploy.wsdd

java部署web service的方式相关推荐

  1. JAVA 调用Web Service

    JAVA 调用Web Service的方法 1.使用HttpClient  用到的jar文件:commons-httpclient-3.1.jar  方法:  预先定义好Soap请求数据,可以借助于X ...

  2. Java RESTful Web Service实战(第2版)

    Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版 ...

  3. Java RESTful Web Service实战

    编者按: InfoQ开设栏目"品味书香",精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自韩陆著<Java RESTful Web Servi ...

  4. 2018年读《Java Restful Web Service 实战》笔记

    2018年大年初四读<Java Restful Web Service 实战>看到一句话写的挺好的,做个记录: **搞技术的人,是停不下来的. 时而要开疆拓土,学习和研究新的知识点,弥补自 ...

  5. JAVA调用Web Service接口的五种方式

    文章目录 1. 通过eclipse等直接生成Client 2. 通过JAVA命令wsimprot命令生成Client 3.通过axis直接调用(无需生成Client) 4.通过axis中的wsdl2j ...

  6. Java开源Web Service(转)

    为什么80%的码农都做不了架构师?>>>    Axis  Apache Axis 是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J& ...

  7. JAVA开发Web Service几种框架介绍

    在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所 ...

  8. Axis通过wsdd部署Web Service

    axis网上的教程很多,不过搜来搜去,总是只有那么几篇.仔细看了一下那几篇文章,都感觉到不是自己想要的,所以自己整理了一篇分享一下. 本文介绍axis应用的一个小例子,没有麻烦的命令行操作,只需照下面 ...

  9. Java开发Web Service的几种解决方案

    转自:http://blog.csdn.net/zolalad/article/details/25158995 Java开发中经常使用到的几种WebService技术实现方案 随着异构系统互联需求的 ...

最新文章

  1. 信息源按加工深度划分_铝合金插铣加工切削力分析及成屑弧区划分
  2. 微信小程序开发系列五:微信小程序中如何响应用户输入事件
  3. Python:绘图保存时出现空白图像的解决和如何保存图片
  4. c语言100以内加减乘除法,一百以内的加减乘除法游戏....
  5. azure模型训练_如何在Azure Machine Learning Studio上开发K-Means模型
  6. Layui第三方扩展LAY_EXCEL导出数据表格的数据
  7. 犀牛插件开发-插件安装器制作-rhino插件
  8. PHP: ThinkPHP获取客户端IP地址
  9. 【位操作笔记】计算以2为底整数N的对数 查表法
  10. 账号密码管理系统html,管理员密码一般是啥
  11. 【node进阶】深入浅出websocket即时通讯(二)-实现简易的群聊私聊
  12. 9 椭圆曲线密码体制
  13. KEIL平台下新建华大HC32F460单片机工程笔记
  14. 解决freeswitch30s就挂掉的问题
  15. Java期末作业-各种系统设计
  16. 中华好诗词大学季第二季(五)
  17. 3、Maven核心程序解压与配置
  18. 拍照基础方法及构图技巧
  19. BS EN 438-5装饰用薄板材层压板材的分类和规范
  20. 实验室预约系统|基于Springboot+Vue实现学校实验室预约管理系统

热门文章

  1. 移动端 html2canvas 踩坑记录
  2. Advanced Installer 打包程序并支持自动升级
  3. [BZOJ1187]神奇游乐园(插头DP)
  4. Quartz 实现分布式任务调度
  5. nginx的平滑升级方法:
  6. 基于LODOP的打印
  7. Java与JavaScript 完美实现字符串拆分(利用数组存储)与合并的互逆操作
  8. WIN7下黑苹果懒人版硬盘安装not a HFS partition注意问题
  9. MySQL安装失败出现could not start the service mysql error:0 错误提示
  10. 体绘制(Volume Rendering)概述介绍