WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService
在现今的Web应用中经常使用Spring框架来装载JavaBean。如果要想将某些在Spring中装配的JavaBean发布成WebService,使用Axis2的Spring感知功能是非常容易做到的。
在本文的例子中,除了
下面先建立一个JavaBean(该JavaBean最终要被发布成WebService),代码如下:
package service;
import entity.Person;
public class SpringService
{
private String name;
private String job;
public void setName(String name)
{
https://www.wendangku.net/doc/16771246.html, = name;
}
public void setJob(String job)
{
this.job = job;
}
public Person getPerson()
{
Person person = new Person();
person.setName(name);
person.setJob(job);
return person;
}
public String getGreeting(String name)
{
return "hello " + name;
}
}
其中Person也是一个JavaBean,代码如下:
package entity;
public class Person
{
private String name;
private String job;
public String getName()
{
return name;
}
public void setName(String name)
{
https://www.wendangku.net/doc/16771246.html, = name;
}
public String getJob()
{
return job;
}
public void setJob(String job)
{
this.job = job;
}
}
将上面两个Java源文件编译后,放到
在
在
xmlns:xsi="https://www.wendangku.net/doc/16771246.html,/2001/XMLSchema-instance" xmlns:aop="https://www.wendangku.net/doc/16771246.html,/schema/aop" xmlns:tx="https://www.wendangku.net/doc/16771246.html,/schema/tx" xsi:schemaLocation=" https://www.wendangku.net/doc/16771246.html,/schema/beans https://www.wendangku.net/doc/16771246.html,/schema/be ans/spring-beans-2.5.xsd https://www.wendangku.net/doc/16771246.html,/schema/aop https://www.wendangku.net/doc/16771246.html,/schema/aop/ spring-aop-2.5.xsd https://www.wendangku.net/doc/16771246.html,/schema/tx https://www.wendangku.net/doc/16771246.html,/schema/tx/spri ng-tx-2.5.xsd">
在applicationContext.xml文件中装配了service.SpringService类,并被始化了name和job属性。在配置完SpringService类后,就可以直接在程序中FileSystemXmlApplicationContext类或其他类似功能的类读取
applicationContext.xml文件中的内容,并获得SpringService类的对象实例。但现在我们并不这样做,而是将SpringService类发布成WebService。
在
Spring aware
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
springService
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 在Windows控制台进入axi2-spring-ws目录,并使用jar命令将axi2-spring-ws目录中的内容打包成 axi2-spring-ws.aar,然后将该文件复制到 http://localhost:8080/axis2/services/springService?wsdl 在将Spring中的装配JavaBean发布成WebService需要注意以下几点: 1. 由JavaBean编译生成的.class文件需要放在WEB-INF\classes目录中,或打成.jar包后放在WEB-INF\lib 目录中,而WEB-INF\services目录中的.aar包中不需要包含.class文件,而只需要包含一个META-INF目录,并在该目录中包含一个services.xml文件即可。 2. services.xml的配置方法与前几篇文章的配置方法类似,只是并不需要使用ServiceClass参数指定要发布成WebService的Java类,而是要指定在applicationContext.xml文件中的装配JavaBean的名称(SpringBeanName参数)。 3. 在services.xml文件中需要通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier 类来获得Spring的ApplicationContext对象。 在eclipse 中创建webservice项目 方法一:使用xfire支持 1.创建Dynamic Web Project 项目: 2.将编译路径改为项目/web-INF/classes; 3.将META-INF 文件夹移动到src下面,并在META-INF 中创建xfire文件夹,文件夹内放入services.xml文件; 4.添加xfire支持的jar包: 5.编写web.xml: 7.编写services.xml 可以存在多个service; 8.访问http://localhost:port/projectName/services/url-pattern?wsdl(蓝色字体均为相应的内容);方法二:使用Axis2支持 1.1Axis2发行包 Axis2以多个发行包发行。你需要哪个视你所需决定。 1.1.1标准二进制发行包 如果你正在开发服务和应用程序,你需要Axis2标准二进制发行包。这个发行包包括所有必要的*.jar文件,以及很多便于开发用的脚本。它具有以下结构。 Axis2标准二进制发行包目录的结构 bin axis2.bat axis2.sh axis2server.bat axis2server.sh java2wsdl.bat java2wsdl.sh wsdl2java.bat wsdl2java.sh setenv.sh lib activation-1.1.jar ... XmlSchema.jar repository modules modules.list addressing-1.1.mar ... services services.list version.aar ... samples ... webapp ... conf axis2.xml LICENSE.txt README.txt NOTICE.txt INSTALL.txt release-notes.html bin目录包括一些有用的脚本。它们包括axis2.bat(或者axis2.sh),这个文件可以让你在不手工添加Axis2 jar文件到类路径的情况下方便的执行Java命令;java2wsdl.bat(和.sh)和wsdl2java.bat(和.sh),它可以让你轻易的从一个WSDL文件生成Java代码,反之亦然;axis2server.bat(和sh),一个简易Web服务器,它可以让你早自己的应用程序中搭建Axis2 Axis2 教程 文章分类:Java编程 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。这些都将在后面的系列教程中讲解。在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService。 一、Axis2的下载和安装 读者可以从如下的网址下载Axis2的最新版本: https://www.wendangku.net/doc/16771246.html,/axis2/ 在本文使用了目前Axis2的最新版本1.4.1。读者可以下载如下两个zip包: axis2-1.4.1-bin.zip axis2-1.4.1-war.zip 其中axis2-1.4.1-bin.zip文件中包含了Axis2中所有的jar文件, axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。 将axis2-1.4.1-war.zip文件解压到相应的目录,将目录中的axis2.war 文件放到 二、编写和发布WebService 对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。 下面我们来实现一个简单的POJO,代码如下: public class SimpleService { public String getGreeting(String name) { return "你好 " + name; } public int getPrice() { return new java.util.Random().nextInt(1000); } } Eclipse 关于接口系统的开发 我们做接口服务端: 小知识: 接口分为:服务端与客户端 服务端:即提供者,是为调用者提供数据的一方; 客户端:即调用者,是调用接口的一方; <一> 服务端的创建 步骤1. 在eclipse新建一个普通工程,例如:新建一个web project 工程。 步骤2.创建完成后,在刚才新建的工程里面,加入我们需要实现的类,和接口。在实现类里面编写客户端传入参数后,需要的相关信息。 例如: Public String sayHello(String word) { Return word; } 步骤3. 进入服务端代码的自动生成阶段,我们选中刚才编写的实现类或是创建的工程,右键。选择,new→project…→other→,如下图,选择web service 服务端。点击next 步骤4.根据下图,通过选择实现类,点击完成。自动生成服务端了。 步骤5 .前4步骤已经完成了webservice的服务端,并已经自动启动好了,我们进行如下测试,访问下自动产生的wsdl文件是否能访问到: 例如:访问wsdl地址示例 http://10.1.159.28:8082/ICTS/services/GetWorkflowListDaoImp?wsdl 其中:GetWorkflowListDaoImp 为自己创建的实现类名称 <二>客户端的创建,测试我们完成的服务端接口: 步骤1. 创建一个普通的web project 工程 步骤2. 创建完成后,选中,我们创建的工程,右键→,new→other→,创建web service cliet 客户端,完成后,点击finish。完成 步骤3。我们通过客户端进行调用,测试一下服务端是否正常。通过如下示例地址:http://10.1.159.28:8082/test1/sampleGetWorkflowListDaoImpProxy/TestClient.jsp, 这是客户端为我们自动建立的测试页面,我们只需输入参数,就可以进行测试了。界面如下: JA V A 利用axis2或cxf调用ABAP发布的Webservice 1.调用过程中存在问题及解决办法 1.1无法利用AXIS2, CXF标准工具解析ECC发布的地址。 解决:利用IE访问Webservice地址,然后将其另存为*.xml文件 利用CXF工具,编译该*.xml 文件,生成JAVA类。 输入:wsdl2java -d src - client http://Webservice。。。。。。。 附加:wsdl2java用法: wsdl2java -p com -d src -all aa.wsdl -p 指定其wsdl的命名空间,也就是要生成代码的包名: -d 指定要产生代码所在目录 -client 生成客户端测试web service的代码 将文件拷贝到程序中。 注意问题:1. 类文件中的包名需要修改,部分定义的-包.类-格式中的包也需要修改. 2. 工具生成类的过程中,如果出现重名的情况(例如某类:TEST,但是有其他类 应该是test,大小写不区分),一般只会保存一个类,需要手工添加缺少的类(可从其他代码的报错信息看出)。 1.2访问权限问题: 访问的权限体现在http的体系中 不同的调用方式,拥有不同的设置权限方法,以CXF为例: 需要在解析后的**client类中添加代码: Client client = ClientProxy.getClient(port); HTTPConduit http = (HTTPConduit) client.getConduit(); AuthorizationPolicy auth = new AuthorizationPolicy(); auth.setUserName("gang.xu"); auth.setPassword("654321"); h ttp.setAuthorization(auth); 1.3访问地址: ABAP会发布两种可以访问的WSDL地址; 第一种: https://www.wendangku.net/doc/16771246.html,:8000/sap/bc/srt/rfc/sap/ytest_se rvice/300/ytest_service/ytest_service 创建WebService使用Axis2和CXF的区别 J2EE中WebService的建立可以使用Axis2,也可以使用Apache CXF,两者的区别与优缺点如下: Web Services 框架如Axis2、CXF 都是由现有的项目中逐渐演化而来的,Axis2 是由Axis 1.x 系列演化过来,而Apache CXF 则是由Celtix 和XFire 项目整合而生,并且刚刚发布了2.0.2 的最新版本,不过仍是Apache 的一个孵化项目。 Axis2 是对Axis 进行了彻底的重写的一个新项目了,它使用了新的模块化架构,更方便于功能性的扩展等等。 Apache CXF 则是由XFire 和Celtix 两个现有的项目进行了重组。 先比较一下它们的不同之处: 1、Apache CXF 支持WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile 2、Axis2 支持WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持 3、Apache CXF 是根据Spring哲学来进行编写的,即可以无缝地与Spring进行整合 4、Axis2 不是 5、Axis2 支持更多的data bindings,包括XMLBeans、JiBX、JaxMe 和JaxBRI,以及它原生的data binding(ADB)。 6、Apache CXF 目前仅支持JAXB 和Aegis,并且默认是JAXB 2.0,与XFire 默认是支持Aegis 不同,XMLBeans、JiBX 和Castor 将在CXF 2.1 版本中得到支持,目前版本是2.0.2 7、Axis2 支持多种语言,它有C/C++ 版本。 8、Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services 如何抉择: 1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 2、如果应用程序是遵循Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的Web Services 来说; 3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如Axis1,XFire,Celtrix 或BEA 等等厂家自己的Web Services 实现,就别劳民伤财了 因为CXF可以和Spring无缝的进行结合,而我的项目用到了spring ,所以我选的是CXF。 WebService 四种发布方式总结 Author:yczhang 1.CXF方式 CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:https://www.wendangku.net/doc/16771246.html,ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。该问题在此处做个记录,以后使用cxf与was的时候需要注意!!! 使用cxf+spring搭建WebService: 第一步,添加jar包。此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包: 而泰康的was环境则需要如下jar包: 明显的多了很多,原因应该是服务器jar包池的不同。根据错误提示缺什么补什么就可以了,注意jar包勿重复。 第二步,配置web.xml文件,如下(重要的地方已标记): WebService创建到发布 1.创建WebService 1.1.首先创建Webservice工程,图中以VS2010为例 a)如果选择.Net Framework 4,则找不到Web服务应用程序,此时选择https://www.wendangku.net/doc/16771246.html,空 Web应用程序。创建好空应用程序后,选择该工程右键添加Web服务 图1 图2 b)如果读者不想使用此方法,则选择.NET Framework 3.5、3.0、2.0,则会出现https://www.wendangku.net/doc/16771246.html, Web服务应用程序 1.2.创建好程序后默认会有一个HellWorld函数 c)WebService1.asmx文件中的代码 namespace WebApplication1 { /// /// [WebService(Namespace = "https://www.wendangku.net/doc/16771246.html,/")] // webservice命名空间 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [https://www.wendangku.net/doc/16771246.html,ponentModel.ToolboxItem(false)] // 若要允许使用 https://www.wendangku.net/doc/16771246.html, AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return"Hello World"; } } } d)运行程序,如图1所示,列出了服务函数名,点击要调用的函数如图2所示,点击 调用后出现图3所示,图3所示中为函数返回值 图1 Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种不同的技术来完成应用系统。WebService还经常被使用在SOA中,用于SOA各个部分交换数据。本课程重点讲解了Axis2的核心功能,并提供了三个项目以使学员理解并掌握如何将Axis2应用于不同的场景。 本课程站在初学者角度介绍了Axis2的大多数常用的功能,例如,以多种方式编写和发布WebService、JAX-RPC、JAX-WS、复杂类型传输、WebService会话管理、Axis2模块等。本课程共分为两部分,其中第一部分为Axis2基础知识讲解。在这部分介绍了前面所述的Axis2 知识。第二部分介绍了三个小的项目。这三个项目的功能类似。所不同的是,它们使用了不同的技术来实现。第一个项目使用Java Swing 技术实现了个人信息管理(PIM)系统,这个系统可以对个人信息(如姓名、职位、电话等)进行增、删、改、查。在这些操作中,涉及到了如何使用WebService来传输和下载图像文件、传输查询结果(Resultset 对象)等技术难点。第二个项目使用Struts 2.1.6(目前Struts 2的最新版,2009年1月发布)来实现PIM。功能与第一个PIM类似。只是这个系统为Web版。在这个项目中学员可以学习到如果将WebService应用在Web程序中。该系统的主要思想是如果Web程序和WebService部署在同一台机器上,Web程序可以直接调用WebService所对应的Java类。当然,也可以象第一个项目一样,直接通过HTTP SOAP协议调用WebService。在第二个项目中同时使用了这两种方式来实现。这两种调用方式分别封装在两组Model类中。可以通过配置struts.xml文件来提定使用哪组模型类(调用方式)。第三个项目使用了C#来实现PIM。这个项目的目的是为了演示如何将.net技术与Java 技术集成来实现一个完整的应用。一个团队要想获得成功,需要每个成员通力合作,各尽所长。而在一个项目中,也和一个团队是一样的,没有哪一种技术适合做所有的事情,因此,需要将各个领域的杰出代表组成一个技术团队。例如,Java适合做企业应用,也能跨平台,比较适合做服务端程序,但它在客户端(C/S)的实现上略显不足,而.net(以C#为代表)和visual studio是windows上语言和开发工具的王者,在GUI上有着无法超越的优势。因此,将Java和.net结合是最完美的联姻。学员从这个项目中就会体会到这个优势所在。 本课程通过一套完备的WebService电子书教程+20多讲教学视频+ QQ群中老师辅导的教学服务方式的教学方式,手把手辅导学员掌握Axis2的核心技术,并一步步带领学员完成这三个项目。 WebService大讲堂之Axis2系列教程 1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 3. 使用services.xml文件发布 WebService 4. 二进制文件传输 5. 会话(Session)管理 6. 跨服务会话(Session)管理 7. 将Spring的装配JavaBean发布成 WebService 8. 异步调用WebService 9. 编写Axis2模块(Module)10. 使用soapmonitor模块监视soap请求与响应消息 Web Service 基本概念 Web Service也叫XML Web Service WebService是种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件(服务),使用WSDL文件进行(说明),并通过(UDDI)进行注册。 XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。 Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web 服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。 WSDL:(Web Services Description Language) WSDL 文件是一个XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。 UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。 概念补充: http soap关系 http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布和接收htttp页面的方法 一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。 soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap 在http协议的基础上,一个基于XML的协议。 不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。 关系:SOAP是个通信协议,SOAP在HTTP协议的基础上,把编写成XML的REQUEST 参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端,为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。 Membrane SOAP Monitor,这个soap监听工具。这是德国的一家在线web服务注册公司predic8做的开源soap监听工具,简单好用。 windows下最新的版本为1.1.2版,下载地址: https://www.wendangku.net/doc/16771246.html,/membrane/monitor/win86/membrane-monitor-win86-1.1.2.zip 还有linux下的版本: A XIS2之WEBSERVICE新手超详细教程 ---------------尚明 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON 等技术,本教程是主要阐述如何构建一个基本的Axis2 webservice应用,里面的许多环节高手可直接略过,本教程完全针对新手。 一、环境安装 安装myeclipse 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/48030981-6b56-40a4-a93b- 8f424ee4f33a 安装mysql 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/de64cf2f-4217-4e11-bb98-8 e6c5dd24155 安装mysql-workbench(mysql可视化工具) 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/becf913f-56a6-4d68-b248-1 34113b73535 安装tomcat 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/ec6a2250-99ff-464e-a978-b e184c96e4e7 下载Axis2服务包 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/bb3db6e3-2f7d-4343-b472- c1fa714dba95 下载Axis2开发插件包 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/aa39505f-079b-43be-9479- 15a2d3e98cbb 安装jdk 下载地址: https://www.wendangku.net/doc/16771246.html,/file/4238159/7ba342f9-277f-4b9c-b5e7-b 0c5b7dfc151 二、环境配置 1)Java环境配置 a)设置JAVA_HOME 图1. 使用Myeclipse 开发基于JAX-WS的Web service实例 本文为Web service 开发入门篇,主要介绍在Myeclipse 环境下开发Web service的服务程序和客户端程序的基本流程。 在Weblogic 10.3.4 中部署Web service服务。 开发环境如下: JAVA IDE:Myeclipse Web server:Weblogic 开发Web service服务程序,需要了解以下相关内容,WSDL, SOAP, XML。这些是组成Web service 的基础。 在下开发Web service程序,目前系统支持的开发框架有3个, JAX-WS,REST(JAX-RS),XFire。其中系统建议不要使用XFire 的框架,可能是要被淘汰了(deprecated)。我们选择的是JAX-WS框架。这个需要Java EE 的支持。所以后面选择Web server容器的时候,是要能支持Java EE 的才可以部署成功。 (一)Web service服务端开发 1. 新建一个Web service project, 菜单File -> New -> Web Service Project, 在上面的框中输入项目名myWebSvc,框架选择JAX-WS, J2EE只能选择Java EE 。Finish完成项目新建。 2. 新建一个Java Bean, 就是一个普通的Class, File –> New -> Class, 包名输入类名输入SayHello, Finish 结束新建类。在类中加入一个方法sayHaha如下, package public class SayHello Web Service学习之axis 看着网上的资料学习了一下,做点笔记以防以后忘记。 一、准备工作: 到axis官方网站下载相应的jar包,我下的是1.4final版。 https://www.wendangku.net/doc/16771246.html,/axis/ 二、建立项目: 直接在MyEclipse中建立了一个web项目。将相应的jar包拷贝到lib文件夹下 三、创建一个WebService服务 直接创建一个类HelloClient.java Java代码 1.package com; 2. 3.public class HelloServer { 4. public String sayHello(String name) { 5. return "Hello " + name; 6. } 7.} axis支持两种方式创建,一种是将编写好的java文件改为*.jws文件。个人觉得这样不好,所以就用另外一种,采用在server-config.xml文件中配置的方式。注意:该文件位置为WEB-INF目录下 Xml代码 1. 2. 6. Microsoft .NET体系结构中非常强调Web Service,构建Web Service接口对.NET Framework开发工具有很大的吸引力,因此很多讲建立Web Service机制的文章都是使用.NET Framework开发工具的。 在这篇文章中我们将谈论下面几个方面的问题 1、客户端怎样和Web Service通信的 2、使用已存在的Web Service创建代理对象 3、创建客户端。这包括: Web 浏览器客户端 Windows应用程序客户端 WAP客户端 最好的学习方法是建立一个基于真实世界的实例。我们将使用一个已存在的Web Service,这个Web Service从纳斯达克获得股票价格,客户端有一个简单的接口,该接口的外观和感觉集中了建立接口的多数语句。 客户端描述 三种客户端都接受客户输入的同一股票代码,如果请求成功,将显示公司名和股票价格,如果代码不可用,将显示一个错误信息。客户端都设置有"Get Quote" 和"Reset"按钮以初始化用户的请求。 开发中的注意事项 我使用visual https://www.wendangku.net/doc/16771246.html,作为我的集成开发环境,beta版没有结合.NET Mobile Web,因此,我们需要使用文本编辑器创建wap客户端,下一个版本的visual https://www.wendangku.net/doc/16771246.html, 将整合入.NET Mobile Web 。 客户端怎样与Web Service通讯 我们先复习一下Web Service的功能,在我得上一篇文章中曾展示一幅图(如图一),a点的用户将通过Internet执行远程调用调用b点web 服务器上的东西,这次通讯由SOAP和HTTP完成。 Axix2 webservice 开发教程 例子简单易懂,很适合初学者。 开发环境:jdk1.6 tomcate5.0 Myeclipse5.0 步骤:1.下载axis2所用包axis2-1.4.1-bin.zip 和axis2-1.4.1-war.zip并解压 下载地址:https://www.wendangku.net/doc/16771246.html,/axis2/ 2.解压axis2-1.4.1-war.zip 将axis2.war 放到%TOME_HOME%\webapps中.启动Tomcate. IE地址输入:http://localhost: 出现以上表示环境搭建成功。 3.下面开始开发自己的axis2 ws: 创建web项目:我的项目工程名为axis2demo; 将axis2-1.4.1\lib下所有jar导入。 创建一个HelloWorld.java 在META-INF下建一个service.xml文件。 注:关于service.xml的参数配置自己baidu+google 4.就开始准备一下axis2的eclispe的插件了。axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。 下载地址是 https://www.wendangku.net/doc/16771246.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/ax is2-eclipse-service-archiver-wizard.zip https://www.wendangku.net/doc/16771246.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/ax is2-eclipse-codegen-wizard.zip 下载完2个压缩文件后,可以直接把解压后的文件拷贝到plugins目录中,也可以在links目录中写文件路径的方式来安装插件,安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other 如果安装正确你会看到 5.用插件生成.aar WebService接口说明文档 文档说明 本文档主要讲述如何用CSharp创建一个简单的WebService接口,并使用Java调用这个WebService接口。 准备工作 系统环境:安装JDK1.6或更新版本 开发工具:Microsoft Visual Studio2012、MyEclipse10.5、axis2-1.6.2 C Sharp服务端 1.首先,创建一个Web Service项目。依次点击:文件—新建—项目,在弹出的新建项目窗口中选择 Web下的https://www.wendangku.net/doc/16771246.html, 空 Web应用程序。如下图: 2.接下来我们需要创建我们的WebService接口实现文件。鼠标右击我们的项目,依次点击:添加—新 建项,在弹出窗口中选择Web服务。可修改新建项的文件名,注意文件名后缀后.asmx。如下图: 新建完成后我们的项目结构如下: 3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的 HelloWorld方法。 我们可以直接运行查看下运行的效果,效果如下图: 点击HelloWorld,再点击调用可以看到页面返回: 4.接下来我们完善我们的WebService接口功能。主要对WebService接口进行参数类型的测试,文本型、 布尔型、数值型、类(Class)等。 新增Add()等运算方法: 新增strcat()连接字符串方法: 新增GetBool()返回布尔值方法: 新增GetTest()返回测试类,并新增Test类 运行我们的项目,可以看到我们的结果如下图: 点击add方法测试: 输入add的参数i和j点击调用按钮,可以看到返回计算结果: 5.到此为止我们C Sharp创建的WebService程序完成。接下来看Java如何调用我们的WebService接口。 利用AXIS开发W ebservice(一) ——如何发布自己的webservice 先介绍下本人开发环境吧。JDK 1.4.2 + Myeclipse 6.0(实在经不起诱惑,尝尝鲜)+ Tomcat 5.0.28 + AXIS 1.4。AXIS 1.4包可以在https://www.wendangku.net/doc/16771246.html,/axis/找到。假设所有的环境你已经搭好,并且AXIS包也已经下好了。OK,Here we go~ 解压axis-bin-1_4.zip这个包可以看到webapps目录,双击进入把里面的AXIS文件夹拷到%TOMCA T_HOME%\webapps目录下,之后拷贝activation.jar、mail.jar、tools.jar 到%TOMCA T_HOME%\webapps\axis\WEB-INF\lib目录下。启动tomcat,访问http://localhost:8080/axis/happyaxis.jsp 如果访问成功,恭喜你!基本的配置你已经做完了。 PS:此处的%TOMCA T_HOME%指的是Tomcat的安装目录,至于那另外的三个jar包,J2EE 1.4库里就能找的到。 现在来说一下最关键的Webservice的发布。AXIS提供了两种发布方式,一种是即时发布(Instant Deployment),另外一种是定制发布(Custom Deployment)。即时发布提供了一种非常简单的webservice的发布方式,但是其中限制太多,因此在实际的开发中定制发布才是首选。这里也将会以定制发布为重点来介绍。 1.即时发布JWS (Java Web Service) Files - Instant Deployment 即时发布提供了一种非常简单发布方式,发布者只要有Java源代码(也就是.java文件),然后把其后缀名改成jws(也就是java web service的缩写)拷贝到%TOMCA T_HOME%\webapps\axis目录下即完成了所有的发布工作。AXIS的编译引擎会处理接下来的所有事情。下面是一段示例代码: java 代码 public class HelloAXIS { public String Hello(String name){ return "AXIS say hello to " + name; } } 把HelloAXIS.java 文件改成HelloAXIS.jws 然后拷贝到%TOMCA T_HOME%\webapps\axis目录下,启动Tomcat之后访问 axis2创建web service(一) axis2 是新一代的web service开发工具,它会让你的web service开发变得轻松,快捷。下面让我们以一个实际的例子来体验一下。首先,工欲善其事,必先利其器。就让我们先做好一些必备的准备工作吧。 下载axis2 的2进制的包和war,现在的最新版本是1.4.1 发布时间是地址分别是: https://www.wendangku.net/doc/16771246.html,/ws/axis2/1_4_1/axis2-1.4.1-bin.zip https://www.wendangku.net/doc/16771246.html,/ws/axis2/1_4_1/axis2-1.4.1-war.zip 把下载后的war放入tomcat的webapps目录里,然后启动tomcat,这样war包就会自动解压为目录axis2(不可以的话,你就自己解压,放在此目录下) 在浏览器中输入http://localhost:8080/axis2/,如果一切正常你会看到下面的画面 就开始准备一下axis2的eclispe的插件了。axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。(注意这两个插件的版本,要用的是1-3-0版本) 下载地址是 https://www.wendangku.net/doc/16771246.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/axis2-eclips e-service-archiver-wizard.zip https://www.wendangku.net/doc/16771246.html,/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/axis2-eclips e-codegen-wizard.zip 下载完2个压缩文件后,可以直接把解压后的文件拷贝到plugins目录中,也可以在links 目录中写文件路径的方式来安装插件,安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other 如果安装正确你会看到 这样准备工作就都做好了。接下来就是正式开发了。 开发的过程: 工具都已经准备齐全了。我们来动手做一个小例子来小试牛刀! 这一节我们先利用axis2来发布一个web service 的服务,然后在下一节我们做一客户端来调用这个服务。eclipse创建webservice的两种方法
Axis2从入门到精通--Webservice在eclipse下开发教程
webservice接口开发
JAVA 利用axis2或cxf调用ABAP发布的Webservice
创建WebService使用Axis2和CXF的区别
webservice五种发布方式及客户端调用
C# Webservice创建、发布、部署
Axis2(WebService)经典教程
xml webService入门教程
axis2之webservice新手超详细教程
使用Myeclipse创建WebService实例
java webservice axis2简单开发实例
webservice接口开发
axis2新手教程实例
WebService接口实例说明文档
手把手教你创建axis_webservice
axis2开发webservice简单实例