前言

本篇是承接上一篇:

[Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端

在上一篇粗略地介绍了如何使用Top-Down的方式创建一个web service .  但是对于如何部署及调用,以及一些细节的部分基本上没有介绍。

应某些博友的要求, 也适逢自己有空, 接下来就详细介绍一下整个部分如何进行。

环境准备

JDK 肯定要安装了, 这个就不多讲了。

1. eclipse  3.5.2

对eclipse 版本的要求其实不是很严, 但是要按照了wtp 插件。

2.  Tomcat6

下载后正常安装就可以了。

创建Web Service 的步骤

这里创建一个运算两个数加法的web service. 给定两个数, 算出它们的和。

(当然, 这里只是个例子, 在实际的状况中,可能是像传入城市名,得到城市天气预报的例子 )

1.  新建一个Dynamic Web Project  - 命名为webServicePrj

项目结构很简单, web.xml 的内容也很简单, 只有配置了首页面的配置。

2. 在 webServicePrj  上右键单击, 选择新建 WSDL

3. 命名为 CalculateSOAP.wsdl

下一步

4 点击 完成 之后就会在项目的跟路径下创建一个  CalculateSOAP.wsdl 的文件,默认以 Design  视图的方式打开。

5. 修改方法名 NewOperation  为 AddOperation

6. 修改输入,输入参数

点击红色部分, 进入编辑的子视图

7. 修改参数名及添加需要的参数

结果如下:

Output 部分类似处理, 结果如下:

修改完成之后, 保存。 WSDL 的部分基本上就完成了。

WSDL 只是一个服务的描述, 至于这个服务实际要做的事情,就要产生web service 的代码了。 就是使用top down 的方式产生Web service.

8.  右键 单击项目, 创建  Web service

9.  Next

10. 一直 next , 直到完成, 看看 eclipse 帮我们产生了那些文件

1) 产生的服务端 Java代码。

impl 结尾的java   文件就是写实际逻辑的地方。

2)自动导入的axis 的一些jar 包

3)产生的部署的描述 (后面有用)

4)这个web.xml  被修改了。 自动增加了一些axis 的servlet 的配置

5) 在WebContent 下会产生一个 wsdl 目录和 CalculateSOAPSOAP.wsdl 的文件。

这个内容和 之前创建的CalculateSOAP.wsdl 类似(所以好的命名方式是之前的wsdl不要加SOAP)

到此, 并没有结束。还需要把这个 web service 部署起来。

11.  deploy 这个webservice 方式有很多种, 简单的一种方式, 就是在WEB-INF 下创建一个  server-config.wsdd

内容如下:

<?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="adminPassword" value="admin" /><parameter name="attachments.Directory" value="D:\Tomcat\temp\axis\WEB-INF\attachments" /><parameter name="attachments.implementation"value="org.apache.axis.attachments.AttachmentsImpl" /><parameter name="sendXsiTypes" value="true" /><parameter name="sendMultiRefs" value="true" /><parameter name="sendXMLDeclaration" value="true" /><parameter name="axis.sendMinimizedElements" value="true" /><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><!--myself webservice--><service name="CalculateSOAPSOAP" provider="java:RPC" style="wrapped" use="literal"><parameter name="wsdlTargetNamespace" value="http://localhost:8080/CalculateSOAP/"/><parameter name="wsdlServiceElement" value="CalculateSOAP"/><parameter name="schemaUnqualified" value="http://localhost:8080/CalculateSOAP/"/><parameter name="wsdlServicePort" value="CalculateSOAPSOAP"/><parameter name="className" value="localhost.CalculateSOAP.CalculateSOAPSOAPSkeleton"/><parameter name="wsdlPortType" value="CalculateSOAP"/><parameter name="typeMappingVersion" value="1.2"/><parameter name="allowedMethods" value="*"/></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.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" /><parameter name="qs.wsdl"value="org.apache.axis.transport.http.QSWSDLHandler" /></transport><transport name="local"><responseFlow><handler type="LocalResponder" /></responseFlow></transport></deployment>

这个文件, 大部分内容是一样的。

只是中间的这块

是从 之前产生的deploy.wsdd 中复制过来的。

到此,开发工作基本完成。

打包、部署war 档

1. 打包

右键单击项目, 导出 war  档, war 名为webServicePrj.war

2. 将  webServicePrj.war 拷到 tomcat 的 webapps 下

3. 浏览器进入:  http://localhost:8080/webServicePrj/services

第一个web service 就是我们新加的。

后面两个是axis 的本身的。

点击第一个 wsdl 链接。

进入: http://localhost:8080/webServicePrj/services/CalculateSOAPSOAP?wsdl

这就是服务发布的地址(实际开发中当然不会使用 localhost,而用实际的IP 或是域名)

测试

测试的方式,当然可以使用
[Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码)
的方式。
但是, 简单来说,可以使用 SoapUI 这个工具来调用。
soapui 下载地址:
http://www.soapui.org/Downloads/

下载启动之后的界面如下: (在页面上就可以操作调用webservice,不过soapui 目前已经开始收费了,可以找一个key或是下一个破解版 ^^)
1上是
11

待定

11
1

[Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)相关推荐

  1. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端

    开始本篇之前, 先说说 Buttom-up(从下到上)和Top-down(从上到下)的概念 这是开发WebService的两种方式. bottom-up 方式: 先创建Java Bean或EJB, 然 ...

  2. [Axis2与Eclipse整合开发Web Service系列之三] 服务端返回值

    前言 在前面的三篇中 [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码) [Axis2与Eclipse整 ...

  3. [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码)

    需求描述 有一个WSDL地址, 需要把它转化成Java代码调用. IDE环境要求 这里使用Eclipse自动生成.这里的eclipse需要安装有Web开发插件. 步骤 1. 首先新建一个 " ...

  4. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  5. 用eclipse europa开发web service服务 - 东写西读终见大海无量 - JavaEye技术网站

    用eclipse europa开发web service服务 eclipse europa自带web工具.我们可以使他生成动态web程序.但是在默认情况下,生成的动态默认程序是不包含web servi ...

  6. 网络游戏《丛林战争》开发与学习之(二):粘包分包现象以及服务端解析数据

    本篇博客主要介绍数据发送和接收时遇到的粘包和分包现象,以及实现服务端解析收到消息的代码,本节的代码是在第(一)部分的基础上进行的,可以先浏览下第一部分https://blog.csdn.net/s13 ...

  7. 基于Tomcat5.0和Axis2开发Web Service应用实例

    本文将介绍如何使用Tomcat5.0和Apache Axis2开发.部署及测试一个简单的Web Service应用.<?xml:namespace prefix = o ns = "u ...

  8. 基于Tomcat5.0和Axis2开发Web Service代码详解

    本文将详细介绍HelloWorld中使用的server和client端代码.阅读之前,你应该首先了解SOAP1.1协议.<?xml:namespace prefix = o ns = " ...

  9. myeclipse下用axis2开发web service的第一个程序(SayHello)

    jar包 axis.jar jaxrpc.jar saaj.jar commons-logging.jar commons-discovery.jar wsdl4j.jar SayHello是很多人都 ...

最新文章

  1. 【面试必备】GET和POST两种基本请求方法的区别
  2. console java_Java Console format()方法与示例
  3. 操作系统【六】虚拟内存
  4. aswing JTable用法
  5. Android获取MAC地址
  6. 59. C# -- .NET Framework 常用命名空间总结
  7. python井字棋如何判断输赢_python 井字棋游戏 简单版,不知道为什么不判断,用Tkinter做的界面...
  8. java数据清洗_数据清洗例子
  9. Mac安装pr拓展时没有CEP文件夹
  10. Google浏览器无法上网问题解决
  11. 关于在dialog中重置form表单失败的问题
  12. java mp3 头信息_java读取mp3文件头信息
  13. ffmpeg 多张图片合成h264编码格式的视频 按照指定时间截取 并添加 acc编码格式音乐 IOS可播放
  14. matlab论文致谢,本科毕业论文致谢范文4篇
  15. 稳若磐石的「云上奥运」背后,是云计算新界面的崛起
  16. 机器学习—模型估计与优化—线性模型—最小二乘估计
  17. 标签系统mysql设计_关于tag标签系统的实现
  18. 脉冲触发器(JK触发器)
  19. 安川伺服驱动器usb驱动_我洗了USB驱动器; 有哪些长期风险?
  20. 2012微软暑期实习笔试

热门文章

  1. 读书笔记--Python基础教程 001
  2. 20155307 2016-2017-2 《Java程序设计》第4周学习总结
  3. HDOJ 2072 单词数
  4. Stanford Local Programming Contest 2011
  5. 在DBGrid中实现Copy、Paste功能 - DELPHI
  6. laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)
  7. 【方案分享】地产项目2022年新春1月系列暖场活动策划方案:新年置业,如虎添翼.pptx(附下载链接)...
  8. 通俗易懂!视觉slam第三部分——slam数学表示
  9. python深度学习第四讲——python神经网络参数更新
  10. PyTorch实战福利从入门到精通之三——autograd