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

前言

本篇是承接上一篇:

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

1上是

11

11

1

时间: 2024-09-29 22:13:47

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

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

前言 在前面的三篇中 [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码) [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续) 介绍了如何使用 axis2 与 eclipse 的开发web Service .在第

SSM框架开发web项目系列(二) MyBatis真正的力量

前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBatis的基础内容,包括基本概念.开发步骤.使用实例等.说起MyBatis,工作中做过SSH/SSM相关Web开发的或者正在学习MyBatis的人或多或少都会接触到类似“MyBatis和Hibernate有什么区别?”,“MyBatis和Hibernate哪个更好?”,“为什么Mybatis用的人越来

[web service]axis2+eclipse+tomcat开发web service

首先需要下载相应的安装包. jsdk1.5 :自己网上搜搜有的是. tomcat:http://tomcat.apache.org/download-60.cgi 下载tomcat 6.0 zip文件. eclipse :下载http://www.eclipse.org/downloads/  Eclipse IDE For java EE developers axis2:http://axis.apache.org/axis2/java/core/download.cgi 下载Binary

JAVA开发Web Service几种框架介绍

在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所提供的对Web Service服务的一种实现.)前面几项都为开源项目,而其中又以axis2与cxf所最为常用,Axis与XFire已随着技术不断的更替慢慢落幕,而目前也只有axis2和cxf官方有更新,Axis与XFire都已不再更新. 下面就分别介绍下这几个框架之间的区别,以便大家进行更好的选择:

Web Service学习-CXF开发Web Service实例demo(一)

Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样调用问题.比如.有一个C语言写的程序.它想去调用java语言写的某个方法. 集中解决:1,远程调用 2.跨平台调用 3,跨语言调用 实际应用: 1.同一个公司的新,旧系统的整合.Linux上的java应用,去调用windows平台的C应用 2,不同公司的业务整合.业务整合就带来不同公司的系统整合.不

构建安全的Xml Web Service系列之如何察看SoapMessage

原文:构建安全的Xml Web Service系列之如何察看SoapMessage 上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53)          要分析Xml Web Service的安全性,首先要解决的问题是我们能了解和清楚Soap消息的格式和内容,如果获得不了SoapMessage,分析如何能构建安全Xml web service也就无从下手,即使分析出来,自己也可 能模模糊糊,不能定论.下面就分析下如何获得SoapMessa

构建安全的Xml Web Service系列之wse之证书存储位置

原文:构建安全的Xml Web Service系列之wse之证书存储位置 我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问: 构建安全的Xml Web Service系列之初探使用Soap头 构建安全的Xml Web Service系列之如何察看SoapMessage 构建安全的Xml Web Service系列之SSL篇 我曾经在上面几篇文章中承诺过要写一些有关wse3.0的,可一直没有时间,自身对wse3.0的认识也是非常有限,所以一直没有实现诺言

构建安全的Xml Web Service系列之初探使用Soap头

原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来,Xml Web Service并没有像当初宣扬的那样火起来,尽管在一些领域之内,也有人牛刀小试,但从整体而言,Service还并没有得到广泛的应用,原因有很多,有一些来源于目前各大厂商都坚持自己的service标准,不能形成统一,也有对现有的稳定系统不愿进行更改的原因,但还包括web servic

使用CXF开发Web Service服务

1.使用CXF开发Web Service服务端 1.1 开发一个Web Service业务接口,该接口要用@WebService修饰 (1)创建一个Java项目MyServer (2)在MyServer项目中创建一个接口HelloWorld package com.xju.ws; import javax.jws.WebService; @WebService public interface HelloWorld { String sayHello(String name); } 1.2 开发