Webservice 命令行搭建axis1.4

当在已有项目中或是多模块项目中添加webservice,用eclipse的方式自动创建会对当前项目造成混乱,特别是在接口可能随时增减或改动的情况下,这时手动搭建成为了比较靠谱的方式,下面记录下手动创建的过程。这里主要用cmd的命令行脚本。

搭建项目

添加依赖

这里的搭建项目,只是指在工程中建立webservice的环境,仅指添加依赖与添加axis1的web.xml配置,无论是一般的web项目或是maven项目,这些基本的依赖包不可少,可根据实际情况进行版本选择或添加包。
这里写图片描述

web.xml配置

web.xml配置与前一篇的没有差别,如果工程中还有其它功能的配置,请注意顺序。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>axisWeb</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/servlet/AxisServlet</url-pattern>
  </servlet-mapping>
  <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>
  <servlet>
    <display-name>Axis Admin Servlet</display-name>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdminServlet</servlet-name>
    <url-pattern>/servlet/AdminServlet</url-pattern>
  </servlet-mapping>
</web-app>

当然要写的接口与服务实现是不可少的,因为要定义webservice接口。

生成

生成wsdl的协议文件

这里用命令行生成一个MainService的服务(以下cmd脚本放在classes目录)

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

set Output_Path=D:\wsdl\MainService.wsdl

set Package=com.estar.service

set namespace=urn:mainservice

set url=http://localhost:8080/axisWeb/services/MainService

%Java_Cmd% org.apache.axis.wsdl.Java2WSDL -o%Output_Path% -l%url% -n%namespace%  -p%Package%=%namespace%   -y rpc com.estar.service.MainService

@echo   wsdl已经成功生成

@echo -----------------------------------------

@pause

成功后在D:\wsdl\目录里会生成MainService.wsdl的文件。

生成服务端

通过协议文件生成服务端

@echo -----------------------------------------

@echo   设置Output_Path设置为你要生成的路径

@echo   Package设置为生成文件的包路径

@echo 最后是wsdl可以是文件路径 可以是URL

@echo   WSDL2Java -o [放在那个包下面] -d Session -s -S true  [wsdl路径]

@echo -----------------------------------------

@echo   切换到当前目录

set CURRENT_DIR=%cd%

@echo %CURRENT_DIR%

cd %CURRENT_DIR%

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

set Output_Path=D:\wsdl\

set Package=com.estar.service

%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% -s -S true D:\wsdl\MainService.wsdl

@echo   服务端代码已经成功生成,代码在src目录下

@echo -----------------------------------------

@pause

执行完成后会生成一系列文件,我们只需要.wsdd的两个部署文件。
这里写图片描述
将这两个文件copy到工程目录里,然后就是与第一篇相同的步骤了,还是记录一下。

部署命令行脚本

这时启动工程,确保可以出现以下页面,然后执行部署命令脚本
这里写图片描述
部署脚本

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%  

set Axis_Servlet=http://localhost:8080/axisWeb/servlet/AxisServlet  

%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% G:\eclipse-mar\space\axisWeb\src\main\webapp\WEB-INF\CatalogServiceService\com\estar\service\deploy.wsdd

@echo   文件server-config.wsdd已经生成

@echo -----------------------------------------

@pause

同样,请将server-config.wsdd从容器中copy到工程的/WEB-INF/中,以免以后再次注册。
注册成功后便可以看见定义的webservice服务了。
这里写图片描述

取消注册服务

如果想取消注册的服务,以同样的方式运行以下脚本。

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%  

set Axis_Servlet=http://localhost:8080/axisWeb/servlet/AxisServlet  

%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% G:\eclipse-mar\space\axisWeb\src\main\webapp\WEB-INF\CatalogServiceService\com\estar\service\undeploy.wsdd 

@echo   服务已经取消

@echo -----------------------------------------

@pause
生成测试端

webservcie服务启动后,生成客户端测试与上篇过程一样,不过此次用命令行生成客户端。

set Axis_Lib=D:\axis-1_4\lib

set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

set Output_Path=D:\wsdl\

set Package=com.estar.service

%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% D:\wsdl\MainService.wsdl

@echo   客户端代码已经成功生成,代码在src目录下

@echo -----------------------------------------

@pause

有wsdl目录可找到生成的客户端代码,新建工程,添加依赖便可进行测试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值