`
sliver08
  • 浏览: 9837 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

web service框架---axis学习笔记

阅读更多
都学到了什么:
1,了解了什么是web service 以及使用它的目的
2,了解了wsdl文档结构,学会怎么编写一个wsdl文件.
3,了解了axis框架,以及怎么使用它来发布,卸载服务,根据java代码生成wsdl文件,根据wsdl文件来生成代码
4,学会怎么在eclipse中利用wsdl文档生成服务端和客户端代码
5,学会怎么在客户方调用服务
接下来我介绍下我学的内容:
一,基础知识篇:
web service:
实现网络上各个系统之间的服务调用,和语言无关.
服务提供方:
提供service服务的一方.
服务调用方:
调用service服务的一方.
Wsdl概念:
服务描述语言,根据服务提供wsdl文档我们可以知道对方提供的服务的信息:
 对方提供了哪些服务?
 如果调用这些服务?
 当我们调用这些服务时,需要提供什么信息?
 我们将如何提供这些信息?
 服务将以什么样的格式返回这些信息?
WSDL文档的结构:
根节点为definitions,它的属性中定义了各种名称的命名空间.
三个必须定义的命名空间为: xmlns:wsdl, xmlns:soap,xmlns:xsd另外还定义了其他的一些命名空间(比如我们自己定义的).
根节点下包括以下直接子节点:
 portType元素,每个portType元素都是一系列的操作的集合,你可以将单个portType元素看成是各种方法组成类的一个逻辑分组,其中有operation(方法)元素,operation元素中有input和output元素, input和output元素中的message属性等于message元素的name.
 message元素,包含若干个part元素,part元素中的element属性等于types中定义的element的name.
注:在IBM的文档中,part 元素使用type属性来定义它的类型,此type属性相当于java中的类型,type的值为命名空间(xsd或者用户自定义的)中定义的各种类型.而在公司的wsdl文档中,part元素是通过element属性来定义类型的,element属性值为types元素中定义的element元素,element元素中定义了complexType元素,而complexType元素才相当于java中的类型,等于是多封装了一层.
 types元素,定义了若干element和complexType元素
 binding元素,它将SOAP 与 WSDL 文件绑定到一起的过程,type属性的值等于portType元素的name,bingding元素中有其他元素.bingding元素中有wsdlsoap:bingding、wsdl:operation两个子元素,其中wsdlsoap:bingding元素作用是声明将把soap作为绑定和传输服务使用,它的style属性是个可选属性,描述了改绑定内部操作的性质,transport属性指定了改绑定将使用的底层传输服务,如http。wsdl:operation元素,每个此元素描述了对应的操作的绑定细节。
 sercive元素,它定义了服务. 其中的name属性表示服务的逻辑名, port元素引用binding元素.
二,实际应用篇
使用axis编写和发布服务
编写java代码并且发布服务
下载axis包,把webapp/axis/web-inf/lib 下的包全部拷到我们的web工程中.另外还需要activation.jar和mail.jar包,这两个包可以去网络上找,找到后也拷贝到工程目录下.(注意,也需要把这些包加入到classpath下,因为等下命令中要用到这些包的类)
    然后在web.xml文件中配置servlet配置如下:
<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>
		<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>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>AdminServlet</servlet-name>
		<url-pattern>/servlet/AdminServlet</url-pattern>
	</servlet-mapping>

编写一个wsdd文件,例子如下
<deployment xmlns="http://xml.apache.org/axis/wsdd/"   
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">   
            <service name="MyService" provider="java:RPC">   
                     <parameter name="className" value="samples.userguide.example3.MyService"/>   
                      <parameter name="allowedMethods" value="*"/>   
            service>   

deployment> 
然后使用命令:java org.apache.axis.client.AdminClient -lhttp://地址:端口/context模块/services/AdminService deploy.wsdd 来发布服务.
使用axis的Java2WSDL工具生成wsdl文件:
java ora.apache.axis.client.AdminClient –l “http://地址:端口/上下文路径/services/服务名”  -n “urn:命名空间” –p “包路径” “urn:命名空间” 完整类名
使用axis的WSDL2Java工具生成Java代码:
java org.apache.axis.wsdl.WSDL2Java -o 代码路径 -d Session -s -S true  -Nurn:命名空间 包路径 wsdl文件名
总结:用axis开发web services步骤:
方式一(能生成标准的java代码)
1,写java代码,生成wsdl
2,通过wsdl生成java代码和部署的wsdd
3,部署服务.
方式二
1,写java代码,wsdd
2,通过wsdd部署服务.
方式三
1,双方定义好wsdl文件
2,双方通过wsdl文件生成源代码,服务提供方在源代码中把实现写好,服务调用方调用服务.
利用eclipse来生成axis:
首先,利用wsdl生成服务端和客户端.我用的是eclipse3.3, newotherweb services/web service, newother web services/web service client可以生成服务端和客户端.
服务端配置:
(1) 导包到工程中(同前)
(2) 配置web.xml文件(同前)
(3) 发布服务: 把自动生成的wsdd文件中的service标签部分拷贝到web-inf/server-config.wsdd中
客户端配置:
(1) 导包到工程中(同前)
(2) 编写代码访问服务端,例子如下:
public static void main(String[] args) {
	// TODO Auto-generated method stub
	FJFaultNotifyBindingStub binding;
	FJFaultNotifyServiceLocator locator=new FJFaultNotifyServiceLocator();
	URL url;
	try{
		url=new URL("http://localhost:8080/FJfaultNotifyService/services/FJFaultNotifyService");
		binding = (FJFaultNotifyBindingStub) locator.getFJFaultNotifyService(url);
		IsAliveResponse response= binding.isAlive(new IsAliveRequest("服务提供者","服务调用者"));
		System.out.println(response.getResultIsAlive());
	}
	catch(Exception e){
		
	}
}
分享到:
评论

相关推荐

    axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2

    总结来说,"axis2-eclipse-codegen-plugin-1.6.2"和"axis2-eclipse-service-plugin-1.6.2"是针对Apache Axis2的Eclipse插件,旨在简化基于Axis2的Web服务开发。通过它们,开发者可以高效地生成和部署服务,同时享受...

    axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard

    共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war

    基于java的开发源码-Web服务框架 Apache Axis.zip

    基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的...

    axis2-eclipse-service与axis2-eclipse-codegen插件

    目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功;...axis2-eclipse-service-plugin-1.6.3.zip axis2-eclipse-codegen-plugin-1.6.3.zip

    axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip

    标题中的"axis2-eclipse-codegen-plugin-1.6.2.zip"和"axis2-eclipse-service-plugin-1.6.2.zip"是两个与Apache Axis2相关的Eclipse插件,用于简化Web服务的开发过程。Apache Axis2是Java平台上一个成熟的Web服务...

    axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_

    标题中的"axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...

    axis2-1.5.1-bin.zip axis2-1.5.1-war.zip axis2部署使用

    Apache Axis2是著名的开源Web服务框架,用于构建和部署高效且灵活的Web服务。这个框架是基于Axis1的升级版,提供了许多改进和新特性,包括更好的性能、模块化架构和增强的MIME支持。标题提到的“axis2-1.5.1-bin.zip...

    html5-3d-mult-axis-images

    axis-imageshtml5-3d-mult-axis-imageshtml5-3d-mult-axis-imageshtml5-3d-mult-axis-images

    axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2

    总的来说,"axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2"的组合为Eclipse用户提供了一套完整的Web服务开发解决方案,从生成代码到部署服务,全程都在熟悉的开发环境中完成,极大地提升...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    综合以上信息,我们可以了解到这是一份包含不同版本的Apache Axis2服务框架的打包资源,可用于搭建、管理和开发基于SOAP的Web服务。用户可以根据项目需求选择合适的版本,并参考提供的文档进行安装和配置。

    axis2相关jar包~eclipse支持插件包

    1、axis2相关jar包如下: axiom-api-1.2.10.jar axiom-dom-1.2.10.jar axiom-impl-1.2.10.jar axis2-adb-1.5.4.jar axis2-adb-codegen-1.5.4.jar axis2-codegen-1.5.4.jar ...axis2-eclipse-service-plugin-1.6.2.zip

    axis2-eclipse-codegen-plugin-1.6.0与axis2-eclipse-service-plugin-1.6.0

    axis2-eclipse-codegen-plugin-1.6.0和axis2-eclipse-service-plugin-1.6.0有关jar包下载,解压后直接将这两个jar包放到eclips下的plugins目录下,重启eclipse即可

    axis2-std-1.0-bin.zip与axis2.war

    通过这个文件,开发者可以进行开发和测试Web服务,因为它提供了完整的Axis2框架以及运行时环境。此外,它还可能包含一些工具,如 wsdl2java 和 java2wsdl,这些工具用于从WSDL文件生成Java代码或反之亦然。 2. **...

    Web service --AXIS2 资料(一)

    在Web服务的世界中,AXIS2是一个关键的角色,它是一个高效的、基于Java的Web服务框架,用于创建和部署Web服务。本资料将深入探讨AXIS2的核心概念、工作原理以及如何利用它来构建和消费Web服务。 【描述】: AXIS2...

    axis2c-bin-1.6.0 axis2c-src-1.6.0

    axis2c-bin-1.6.0-linux.tar.gz axis2c-bin-1.6.0-win32.zip axis2c-src-1.6.0.tar.gz axis2c-src-1.6.0.zip 加md5

    Axis2-1.6.2-bin和Axis2-1.6.2-war

    Axis2是Apache软件基金会开发的一款基于Java的Web服务框架,用于构建高效、可扩展的Web服务。这个框架提供了丰富的功能,包括服务部署、消息处理、事务管理等,使其成为企业级应用开发的重要工具。我们主要关注两个...

    axis2-1.5.6完整版

    Axis2 是一个强大的 Web Service 框架,它是由 Apache 软件基金会开发的,主要用于构建和部署 Web 服务。版本 1.5.6 是 Axis2 的一个稳定版本,提供了一系列增强的功能和修复了若干已知问题,使得在 SAP 中进行 Web ...

    完整的axis2 jar包包含实例.zip

    axis2 webservice 服务端jar包: --&gt;axis2-kernel-1.6.1.jar --&gt;axis2-spring-1.6.1.jar --&gt;axis2-transport-http-1.6.1.jar --&gt;XmlSchema-1.4.7.jar --&gt;wsdl4j-1.6.2.jar --&gt;axiom-api-1.2.12.jar --&gt;axiom...

    axis2-1.6.0-bin和axis2-1.6.0-war

    Apache Axis2是一个强大的、灵活的Web服务框架,它支持多种协议,如HTTP、SMTP、JMS等,以及各种数据格式,如SOAP、REST、XML和JSON。Axis2的核心设计目标是提高性能和可扩展性,它通过模块化架构实现了这一目标,...

Global site tag (gtag.js) - Google Analytics