- 浏览: 88792 次
- 性别:
- 来自: 宜昌
文章分类
最新评论
-
chenaha:
不知道大哥是否会用sencha touch,我想写一个这样的效 ...
用ext读取XML写一个“省-市-邮编”三级联动
第一篇 开始axis之旅
1.下载axis.bin.zip和axis.war.zip
2.解压axis.war.zip将axis.war文件copy到你的服务器下,自动解压为axis2目录;对于java开发人员来说,这个应该知道吧。
3.在浏览器地址栏输入http://localhost:8080/axis2/,看到如下效果
恭喜你,axis容器部署成功了!!!
4.新建一个包目录service1,在其下编写一个简单的POJO
package service1; public class Hello { public String hello(String name) { return "hello ," + name; } }
进入cmd命令行,
D:\>cd service1
D:\service1>javac Hello.java
5.新建文件夹META-INF,在其下编写service配置文件services.xml
<service name="Service1"> <description> Service1 </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> <parameter name="ServiceClass">service1.Hello</parameter> </service>
6.新建目录temp,将上述service1和META-INF目录copy到temp。在cmd下cd temp...jar cvf hello.aar .(注意最后还有一个点),copy文件hello.aar到服务器目录\webapps\axis2\WEB-INF\services,服务器代码就OK啦!!!
看看效果吧。
浏览器地址栏输入:http://localhost:8080/axis2/services/listServices
点击相应的服务可以看到wsdl文件。
7.开始编写客户端吧
public static void main(String[] args) { try { RPCServiceClient client = new RPCServiceClient(); Options opts = client.getOptions(); EndpointReference epr = new EndpointReference("http://localhost:8080/axis2/services/Service1"); opts.setTo(epr); Object[] param = new Object[] { "ruanzy" }; Class[] classes = new Class[] { String.class }; QName method = new QName("wsdl文件中的targetNamespace", "hello"); Object[] result = client.invokeBlocking(method, param, classes); System.out.println(result[0]); } catch(Exception e) { e.printStackTrace(); } }
控制台输出hello,ruanzy
webservice搞定啦。
第二篇 axis反向
所谓axis反向是指根据webservice的url或者wsdl文件,得到客户端和服务器端代码
先来看看怎么生成客户端代码吧。还记得第一篇下载的axis.bin.zip吗,解压后bin目录下有一些工具bat,其中wsdl2java.bat就是用来根据webservice的url或者wsdl文件,得到客户端和服务器端代码的。
为了方便调用我们需要设置环境变量AXIS_HOME=axis2的安装目录;添加path=%AXIS_HOME%/bin;
进入cmd命令行,WSDL2Java -uri http://localhost:8080/axis2/services/Hello?wsdl或者wsdl文件的路径 -p client -s -o temp
将会在src/client下生成HelloStub.java,这个就是我们客户端调用时要用到了。
HelloStub ss = new HelloStub(); HelloStub.GetName gg= new HelloStub.GetName(); gg.setName("ruanzy"); String ret = ss.getName(gg).get_return(); System.out.println(ret);
控制台输出hello,ruanzy。和第一篇结果一样
第三篇 复合数据的处理
简单地说,axis支持数组,类和接口数据的处理。不过数组只支持一维数组,对于多维数组要变通一下。
如:String[] arr = new String[]{"a,b,c","d,e,f",...};
对于类和接口,最好采用序列化和反序列化来处理。先序列化为byte[],再反序列化...
第四篇 内部和服务之间的状态管理
AXIS对于服务的状态管理是通过MessageContext以及
服务内部(erviceContext)服务之间(ServiceGroupontext)来处理的。
服务内部:service配置scope=transportsession
MessageContext messageContext = MessageContext.getCurrentMessageContext(); ServiceContext serviceContext = messageContext.getServiceContext(); 通过serviceContext.setProperty(key, value)设值,通过serviceContext.getProperty(key)来取数据。
服务之间:service配置scope=application
MessageContext messageContext = MessageContext.getCurrentMessageContext(); ServiceGroupContext serviceContext = messageContext.getServiceGroupContext(); 以下和上面的设、取值一样
第五篇 Spring和AXIS整合
主要看一下services.xml吧
<service name= "SpringService" > <description>simple spring example</description> <parameter name= "ServiceObjectSupplier" > org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier </parameter> <parameter name= "SpringBeanName" >springService</parameter> <messageReceivers> <messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-only" class = "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-out" class = "org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service>
第六篇 ANT一键生成
<?xml version="1.0" encoding="UTF-8"?> <project name="MyAXIS" default="wsdl2java" basedir="."> <property name="classes" value="../WebRoot/WEB-INF/classes/server" /> <property name="temp" value="${basedir}/temp" /> <property name="stub" value="${basedir}/stub" /> <property name="services" value="D:/Program Files/apache-tomcat-5.5.26/webapps/axis2/WEB-INF/services" /> <target name="init"> <echo>创建临时目录</echo> <mkdir dir="${temp}" /> <mkdir dir="${temp}/META-INF" /> </target> <target name="aar" depends="init"> <echo>压缩到aar包</echo> <copy todir="${temp}"> <fileset dir="../WebRoot/WEB-INF/classes"> <include name="**/**" /> </fileset> </copy> <copy file="${basedir}/services.xml" tofile="${temp}/META-INF/services.xml" /> <jar basedir="${temp}" destfile="${services}/service.aar" /> <delete dir="${temp}" /> </target> <target name="restar" depends="aar"> <echo>重启服务器</echo> <exec dir="D:/Program Files/apache-tomcat-5.5.26/bin" executable="cmd"> <env path="D:/Program Files/apache-tomcat-5.5.26" key="CATALINA_HOME" /> <arg value="/C startup.bat" /> </exec> </target> <target name="wsdl2java" depends="restar"> <waitfor> <http url="http://localhost:8080/axis2/services/SayHello?wsdl" /> </waitfor> <echo>生成客戶桩</echo> <exec dir="D:/workspace" executable="cmd"> <arg value="/c" /> <arg value="WSDL2Java" /> <arg value="-uri" /> <arg value="http://localhost:8080/axis2/services/SayHello?wsdl" /> <arg value="-p" /> <arg value="stub" /> <arg value="-s" /> <arg value="-o" /> <arg value="wstest" /> </exec> <delete file="D:/workspace/wstest/build.xml" /> </target> </project>
发表评论
文章已被作者锁定,不允许评论。
-
dialog
2014-01-06 15:26 0div.rzy-mask { background-co ... -
box.js
2013-12-23 15:54 726jQuery.fn.center = function(sc ... -
IE6 autocomplete
2013-12-11 10:05 622aaa -
Callable Future
2013-12-09 09:00 621package advancedJava; impor ... -
RequestContext
2013-12-06 11:30 489package util; import java.i ... -
XUtil
2013-12-04 15:21 1194package util; import java.i ... -
ActionFilter
2013-12-04 09:02 468package util; import java. ... -
最新基于Json 协议的架构
2013-12-02 23:35 716package util; import java. ... -
权限脚本
2013-11-27 09:32 519aa DROP TABLE IF EXISTS seq; ... -
主框架
2013-04-10 23:30 596<!DOCTYPE HTML PUBLIC &quo ... -
java 备份mysql
2012-07-01 01:18 772import java.io.BufferedReader;i ... -
权限管理
2012-06-23 02:14 693权限管理 -
FTPUPLOAD
2012-04-28 17:56 0package util; import java.io ... -
layout
2011-11-15 22:49 654$(function () { ... -
ligerui.css
2011-11-15 22:41 1249/* YUI CSS Reset */ html{col ... -
Accordion
2011-11-15 22:29 3077/** * jQuery ligerUI 1.0.2 * ... -
LigerUI
2011-11-13 16:52 853SDFD -
js 控件集
2011-11-06 00:39 967js 控件集 -
fileutil
2011-10-24 16:04 879import java.io.File; import ja ... -
语法高亮
2011-10-21 16:17 669语法高亮
相关推荐
在"WebService之axis2案例"中,我们有两个关键部分:服务端(WebService_server)和客户端(WebService_client)。服务端是提供Web服务的应用程序,它定义了对外公开的接口和业务逻辑,这些接口可以通过SOAP(Simple...
在"webservice之axis实例,axis复杂对象"这个主题中,我们将关注以下核心知识点: 1. **SOAP与WSDL**: SOAP是一种轻量级的消息协议,用于在Web上交换结构化的和类型化的信息。WSDL则是一种XML格式,用来描述Web...
Webservice之Axis高级编程 Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种...
### WebService之Axis2经典教程 #### 一、概述 随着信息技术的发展,Web Service作为一种重要的分布式计算模式,已经成为实现服务导向架构(SOA)的关键技术之一。Axis2作为一款流行的Web Service引擎,不仅具备高...
WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...
以下是关于"java webservice之axis2与spring集成(二)"的详细知识点讲解: 1. **Spring框架**: Spring是Java领域的一个开源框架,主要用于简化企业级应用的开发。它提供了一个全面的编程和配置模型,特别强调了...
### WebService之Axis2教程知识点总结 #### 一、Axis2简介及应用场景 - **Axis2定义**:Axis2是一款高性能、轻量级且灵活的Web服务引擎,它基于Apache软件基金会开发,作为Apache Axis 1.x的下一代产品,不仅支持...
SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供了强大的SOAP处理能力。通过整合SpringBoot与Axis,我们可以快速构建高效...
标题中的“webservice之axis2”指的是使用Axis2来实现Web服务。 在描述中,我们看到了实现Web服务的步骤,包括服务端和服务端客户端的创建。以下是对这些步骤的详细解释: 1. **创建Web服务工程**:首先,我们需要...
【标题】"webservice之axis2方式开发总结" 在IT行业中,Web服务是不同系统间进行数据交换和功能调用的重要手段,而Axis2是Apache软件基金会提供的一个强大的Web服务框架,专门用于构建和部署Web服务。本篇将对基于...
### WebService之Axis的复杂对象传输方案 #### 一、概述 在Web服务领域,Axis是一种广泛使用的开源工具包,它支持SOAP协议,并且能够帮助开发者轻松地创建和调用Web服务。对于复杂的业务场景,往往需要在客户端和...
WebService之Axis2的使用是构建基于SOAP协议的Web服务的重要技术。Axis2是Apache软件基金会开发的一个开源项目,它是Axis1.x的升级版,提供了更高效、更灵活的服务架构。本篇文章将深入探讨如何利用Axis2来创建和...
这个标题“webservice之axis所需的全部的包”指的是一个包含Axis运行所需的全部库文件的压缩包集合。 Axis的核心功能包括: 1. **Web服务客户端生成**:Axis可以从WSDL(Web Service Description Language)文件...
**WebService之Axis2介绍与入门** 在Web服务领域,Axis2是Apache软件基金会开发的一个开源Web服务框架,它是Axis1.x的升级版本,提供了一种更高效、更灵活的方式来创建和部署Web服务。本篇文章将深入探讨Axis2的...
本人总结的关于webservice之axis2引擎的开发文档,其实是以备自己日后使用的,现在贡献出来供大家学习,参考。我人深感因为没有资源分而不能获得文档的苦恼。学习的权利是平等的。所以,我的文档就不设资源分了。...
【WebService之Axis2的使用(四)】 在Web服务领域,Axis2是Apache软件基金会开发的一个用于构建和部署Web服务的高性能、灵活的框架。它基于Axis1,并且提供了更加强大和高效的特性,比如模块化架构、更好的性能...
在Java世界中,当我们需要通过WebService传递复杂的数据结构时,例如一个对象或javabean,AXIS提供了很好的支持。javabean是一种Java类,遵循特定的命名和设计规则,用于封装数据和提供访问这些数据的方法,它们常...