1.准备工作:

概念:SOAP(简单对象访问协议)、WSDL(web服务描述语言)、XML(可扩展标记语言)、axis(阿帕奇可扩展交互系统)

(1)     下载axis1.4,将axis1.4中的axis项目中WEB-INF\lib,将lib下的jar文件拷贝到工程如webservice的WEB-INF\lib下

(2)     将axis1.4中的axis项目,拷贝到tomcat的webapps目录下

(3)   配置Java和Tomcat环境,设置axis环境,类似jdk的配置方法,例如:

AXIS_HOME= E:\apache-tomcat-6.0.37-windows-x86\apache-tomcat-6.0.37\webapps\axis

AXIS_LIB=%AXIS_HOME%\lib

AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.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     (最后两个可能没有,不是必须的)

(4)       配置web.xml添加

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web

Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>Apache-Axis</display-name>

<listener>

<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>

</listener>

<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>

<servlet-name>AdminServlet</servlet-name>

<display-name>Axis Admin Servlet</display-name>

<servlet-class>

org.apache.axis.transport.http.AdminServlet

</servlet-class>

<load-on-startup>100</load-on-startup>

</servlet>

<servlet>

<servlet-name>SOAPMonitorService</servlet-name>

<display-name>SOAPMonitorService</display-name>

<servlet-class>

org.apache.axis.monitor.SOAPMonitorService

</servlet-class>

<init-param>

<param-name>SOAPMonitorPort</param-name>

<param-value>5001</param-value>

</init-param>

<load-on-startup>100</load-on-startup>

</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-mapping

<servlet-name>SOAPMonitorService</servlet-name>

<url-pattern>/SOAPMonitor</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>5</session-timeout>

</session-config>

<mime-mapping>

<extension>wsdl</extension>

<mime-type>text/xml</mime-type>

</mime-mapping>

<mime-mapping>

<extension>xsd</extension>

<mime-type>text/xml</mime-type>

</mime-mapping>

<welcome-file-list id="WelcomeFileList">

<welcome-file>index.jsp</welcome-file>

<welcome-file>index.html</welcome-file>

<welcome-file>index.jws</welcome-file>

</welcome-file-list>

</web-app>

2.实战

1.写一个方法类,以bean的形式作为入参

RequestBean.java

package com.webservice.request;

public class RequestBean {

private String msg;

public String getMsg()

{

return msg;

}

public void setMsg(String msg)

{

this.msg = msg;

}

}

2.写一个方法类,以bean的形式作为回参

ResultResponse.java

package com.webservice.respone;

public class ResultResponse {

private int code;

private String errorMsg;

public int getCode()

{

return code;

}

public void setCode(int code)

{

this.code = code;

}

public String getErrorMsg()

{

return errorMsg;

}

public void setErrorMsg(String errorMsg)

{

this.errorMsg = errorMsg;

}

}

3.写一个方法类service,以上面两个bean作为入参和回参

BusinessService.java

package com.webservice.service;

import com.webservice.request.RequestBean;

import com.webservice.respone.ResultResponse;

public class BusinessService {

public ResultResponse send(RequestBean requestBean)

{

ResultResponse res = new ResultResponse();

try

{

String msg = requestBean.getMsg();

System.out.println("收到消息:" + msg);

if (null != msg && !"".equals(msg))

{

res.setCode(0);

res.setErrorMsg("ok");

} else

{

res.setCode(-1);

res.setErrorMsg("msg is null");

}

} catch (Exception e)

{

res.setCode(-1);

res.setErrorMsg("exception:" + e.getMessage());

}

return res;

}

}

4.在工程的WEB-INF目录下 编写deploy.wsdd

主要用来定义service名字,描述service、入参、回参

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

xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="businessService" provider="java:RPC">

<parameter name="className" value="com.webservice.service.BusinessService" />

<parameter name="allowedMethods" value="*" />

<beanMapping qname="myNS:RequestBean" xmlns:myNS="urn:BeanService"

languageSpecificType="java:com.webservice.request.RequestBean" />

<beanMapping qname="myNS:ResultResponse" xmlns:myNS="urn:BeanService"

languageSpecificType="java:com.webservice.respone.ResultResponse" />

</service>

</deployment>

5. 在工程的WEB-INF目录下编写undeploy.wsdd

用来卸载webservice服务

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

<service name="businessService"/>

</undeployment>

6. 部署项目(启动tomcat),接下来发布接口(关键一步)

进入到tomcat的项目中的WEB-INF目录下,执行下列命令进行发布。会在此WEB-INF下生成server-config.wsdd文件(以后可以在此目录配置其他接口)

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://192.168.30.143:8080/webservice/servlet/AxisServlet deploy.wsdd

Ps:下面命令用于取消一个已经发布的服务

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://192.168.30.143:8080/webservice/servlet/AxisServlet undeploy.wsdd

 

7.获取wsdl(完成)

(1)重启tomcat,访问工程目录,如:http://192.168.30.143:8080/webservice/servlet/AxisServlet(其中webservice为工程名)

(2)可以看到新的服务方法businessService,点击一下,跳刀wsdl内容页面,ctr+A拷贝到文本编辑器,去掉开头的空格,替换去掉所有开头的“-”为空(即将- <替换为<);另存为businessService.wsdl,即可提供其他方使用,注意:如果部署在linux上,要访问linux的网页获取wsdl,不然可能会有问题

-----------------------------------------------至此发布完毕------------------------------------------------

3.测试验证

1.根据wsdl生成客户端代码

(1)首先制作生成代码工具,方便以后重用;

在D:\webservice,放个axis1.4的包,创建一个批处理文件“wsdl生成java客户端文件.bat”,内容如下:根据实际情况配置

set Axis_Lib=D:\webservice\axis1.4\axis\WEB-INF\lib

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

set Output_Path=D:\webservice\Testclient

set Package=com.my.client

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

@echo  -------------OK-----------------

@echo ---The code has been created in the folder: Testclient---

@pause

说明:蓝色部分根据实际情况调整

Axis_Lib 是axis1.4的lib位置

Output_Path是生成客户端代码存放位置

Package 是生成客户端代码所在包

最后是wsdl文件位置

(2)生成客户端代码

将wsdl文件,如businessService.wsdl放到D:\webservice下(上一步应该做了),执行文件“wsdl生成java客户端文件.bat”,即可生成客户端代码,在Testclient目录。

2.测试接口

将生成的客户端带拷贝到java或其他web工程的src下

建立测试java类,如Test.java,测试完成

public class Test {

public static void main(String[] args) throws RemoteException,

ServiceException, MalformedURLException

{

// BusinessServiceService为接口;BusinessServiceServiceLocator为接口实现类

BusinessServiceService service = new BusinessServiceServiceLocator();

// 设置要使用的接口服务地址:多用于动态调用不同服务器上的接口

URL portAddress = new URL(

"http://192.168.30.143:8080/webservice/services/businessService");

BusinessService client = service.getbusinessService(portAddress);

// 传参数bean

RequestBean requestBean = new RequestBean();

requestBean.setMsg("wwww.servyou.com.cn");

// requestBean.setMsg("");

// 发送并接收返回的结果

ResultResponse resp = client.send(requestBean);

System.out.println("消息已发送...");

int code = resp.getCode();

String errorMsg = resp.getErrorMsg();

System.out.println("消息已返回,code=" + code + ",errorMsg=" + errorMsg);

}

}

基于axis1.4的webservice实例的更多相关文章

  1. 基于Axis1.4的webservice接口开发(接口调用)

    基于Axis1.4的webservice接口开发(接口调用) 一.webservice接口代码参考上一篇博客: http://www.cnblogs.com/zhukunqiang/p/7125668 ...

  2. 基于Axis1.4的webservice接口开发(代码开发)

    基于Axis1.4的webservice接口开发(代码开发) 一.开发环境: 我的开发环境是MyEclipse 2015+Apache-Tomcat-8.0.21. 二.代码开发: 1.新建一个Web ...

  3. 基于Axis1.4的webservice接口开发(环境搭建)

    基于Axis1.4的webservice接口开发(环境搭建) 一.环境搭建: 1.搜索关键字“Axis1.4”下载Axis1.4相关的jar包. 下载地址:http://download.csdn.n ...

  4. Java中WebService实例

    Web Services是由企业公布的完毕其特定商务需求的在线应用服务,其它公司或应用软件可以通过Internet来訪问并使用这项在线服务. Web Service的关键技术和规则: 1.XML:描写 ...

  5. Axis1.4开发webservice个人笔记

    Axis1.4开发webservice SOAP 是基于 XML 的简易协议,SOAP 即Simple Object Access Protocol(简单对象访问协议),可使应用程序在 HTTP 之上 ...

  6. SAP和Java系统的Webservice实例

    简介: 关于Webservice的概念和原理,简单来讲,Webservice是一种基于SOAP传输协议,用WSDL描述,用XML封装数据的接口技术.由于其跨平台.跨防火墙.开发成本低.开发周期短等优势 ...

  7. Java 使用Axis实现WebService实例

    在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...

  8. axis1.4 发布webservice的问题

    用axis1.4 发布webservice的问题 The service class "org.gdt.sgcda.wf.impl.DefinitionManageServiceImpl&q ...

  9. PHP调用Webservice实例

    原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...

随机推荐

  1. 默认的Sublime 3中没有Package Control

    https://packagecontrol.io/installation#st3 (官方) 原来Subl3安装Package Control很麻烦,现在简单的方法来了 一.简单的安装方法 使用Ct ...

  2. 解决Visio复制绘图时虚框变实框的问题

    参考:http://www.educity.cn/help/653700.html 问题好像是,在VISIO里只要虚线框的大小超过一个界限,拷贝之后就会变成实线框. 解决办法是修改注册表:[运行reg ...

  3. Python学习笔记_05:使用Flask+MySQL实现用户登陆注册以及增删查改操作

    前言:本文代码参考自两篇英文博客,具体来源点击文末代码链接中文档说明. (PS:代码运行Python版本为2.7.14) 运行效果: 首页: 注册页面: 登陆界面: 管理员登陆后界面: 添加.删除.修 ...

  4. Spring学习笔记二:注入方式

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774608.html  我们说,IOC的实现方式是依赖注入,也就是把被依赖对象赋值到依赖对象的成员属性.怎么做 ...

  5. Orabbix监控Oracle 11g

    Orabbix简介说明 orabbix是一个用来监控oracle数据库性能的zabbix插件工具,通过安装在被监控服务器上客户端上收集数据并传给zabbix服务器端,然后通过调用图形显示.具有以下功能 ...

  6. jackson 中JsonFormat date类型字段的使用

    为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...

  7. linux C++ 莫名奇异的段错误(segmentation fault),无法调用其他函数

    进来在linux下开发C++项目,遇到了非常奇怪的bug. 项目须要多线程实现,在写好代码后,每当执行到线程函数内部,当内部调用其他函数如printf.fopen等时就会提示段错误(segmentat ...

  8. 〖Linux〗使用纯命令行来操作VBOX(宿主机不需要X11 Server)

    1. Linux安装vbox,略过 2. 查看已安装扩展插件 VBoxManage list extpacks 3. 创建一个vm: VBoxManage createvm --name " ...

  9. django之创建第3个项目:编写第一个模板文件

    1.django结构 2.在站点blog下创建templates文件夹,专门用于存放模板文件 3.在templates文件夹下创建index.html文件 #index.html <!DOCTY ...

  10. 【tp5】表单验证之token

    1.本场景仅介绍复杂一点的ajax请求带上token验证,普通的form提交不讲 2.原理仅个人理解,如有偏差 欢迎各路大神指点:框架tp5.0.18 目前将token放置于 ajax的header头 ...