- 浏览: 43760 次
- 性别:
- 来自: 叶柏寿
最近访客 更多访客>>
文章分类
最新评论
-
top_kevin:
fgd
JVM加载class文件的原理机制 -
0640110146:
按照这个方法解决,不过貌似每个包下面都有一个svn目录,每个 ...
svn文件被锁不能提交解决办法
说道Web Service的程序开发,八个月前我加班调试公司和中国电信的商务领航系统的接口的时候,用的就是Web Service,Web Service有很多优点,使用Web Service可以在不同编程语言间实现数据交换,而我那时对Web Service也不熟,就由同事帮我生成了一大堆Web Service的框架代码,我则只单独开发业务代码。
这次的另外一个项目也要用Web Service了,不过人手也少了,没有人帮做Web Service了,只好自己动手。
好在开发前,有个同事先给我们不熟悉Web Service的程序员进行了一些培训,我才知道原来以前的Web Service都是可以自动生成代码的,而且也不难,试了一个下午客户端和服务器端的Web Service代码就都调试通过了,真不错。
为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。
一、Axis环境的安装
1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
2、到 http://xml.apache.org网站下载Axis安装包。
3、将Axis相关包文件放在WEB-INF\lib目录下。
4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface (DII)
2、Dynamic Proxy方式
3、Stubs方式
前两种方式我就不介绍了,同事告诉我他们自己都不使用前两种方式,他们建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。注意,我自己的Java源代码是放在D:\workspace\test\目录下,Axis相关包文件放在D:\workspace\test\WEB-INF目录下。
二、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
package server;
public class SayHello
{
public String getName(String name)
{
return "hello "+name;
}
}
2、编写wsdd文件
deploy.wsdd文件内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello" provider="java:RPC">
<parameter name="className" value="server.SayHello.getName"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3、发布服务:
编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:
set Axis_Lib=D:\workspace\test\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services 就会显示服务列表。
4、生成客户端client stub文件
在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
编写一个WSDL2Java.bat文件,其内容如下:
set Axis_Lib=D:\workspace\test\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\workspace\test\src
set Package=server.SayHello
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl
执行这个批处理文件就可以生成client stub.
生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .
5、编写客户端程序,编译并执行
下面是一段junit测试客户端代码。
import java.net.URL;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestWSClient extends TestCase {
public TestWSClient(String string) {
super(string);
}
public void SayHelloClient() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
SayHello_PortType client = service.getSayHello() ;
String retValue = client.getName("clientname");
System.out.println(retValue);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestWSClient("SayHelloClient"));
return suite;
}
}
至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。
发表评论
-
一台服务器部属两个JBOSS方案
2010-01-09 17:43 1009解决办法: 修改 \jboss-4.0.4.GA\server ... -
对比一下
2010-01-07 19:29 692/** *分段批量处理 *看看什么是垃圾代码 */ ... -
DeploymentUtil.isSourceFolder(Unknown Source) 问题解决
2009-11-23 16:47 13881.安装后,部署工程hmsi时,出现error的一个错误对话框 ... -
servlet-api-2.4.jar - jar not loaded 问题解决
2009-11-23 16:45 2437信息: validateJarFile(G:\workspac ... -
JVM加载class文件的原理机制
2009-11-19 10:36 2053Java 语言是一种具有动 ... -
web工程识别
2009-11-16 09:17 731修改工程目录下的.project文件 替换成下面 <?x ... -
java存储过程调用 MSSQL
2009-11-13 10:43 1063存储过程: --call MyProc(?,?,?)al ... -
有谁来买我的火柴
2009-11-01 21:37 658今天,在桂林繁華的中山路上,蹲在桃花江橋正式掛牌賣火柴了 有 ... -
关于static变量,成员变量和局部变量
2005-06-10 13:58 788我找到一个很经典的例子,看明白了就可以了解他们各自的特性了. ... -
NIO介绍
2007-04-20 14:03 662前言: 可悲的是我参考的这些技术资料是在02~04年的,那时 ... -
Java程序员认证模拟题及详细分析
2007-05-11 13:44 611Java程序员认证模拟题及详细分析 ------------ ... -
webservice 基于对象的传输
2008-03-26 15:38 964由于最近公司采用Web Services技术做企业应用集成( ... -
在axis中实现附件上传
2008-03-29 16:04 1143说明:最后两句非常关键!!! --------------- ... -
JavaME中文编码
2008-09-02 15:03 6581. 简介 本文介绍JavaME中文编码的 ... -
java时间定义及转换
2009-02-21 13:47 737时间定义及转换: 2008-04-10 11:12:12 & ... -
java Collection
2009-07-23 21:03 668Java面试中,最常被人问到的几个问题: 1. java.ut ...
相关推荐
使用axis开发webservice使用的jar包
借鉴网上的资源,弄了一个SpringBoot开发WebService之Axis示例。
webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例
访问地址: http://127.0.0.1:8080/axis/services
eclipse+AXIS开发webservice.doc
eclipse+AXIS开发webservice.pdfeclipse+AXIS开发webservice.pdfeclipse+AXIS开发webservice.pdfeclipse+AXIS开发webservice.pdfeclipse+AXIS开发webservice.pdf
axis发布webservice教程axis发布webservice教程axis发布webservice教程axis发布webservice教程
一个基于axis的webservice接口例子
eclipse axis webservice 开发 eclipse下使用axis2 开发webservice系统
Axis2开发webservice总结
Axis2开发webservice总结,资源一般,希望对大家有用
Axis2WebService源码。本地测试通过。
使用axis2 开发webservice
spring+axis集成webservice
Axis开发WebService实例.pdf
用axis进行webservice开发 开发webservice的好工具。
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
从架构师的角度来理解:webservice是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。
使用Axis2搭建_WebService
Axis WebService 技术指南,开发文档,很全面、详细。 Axis的简单入门实例 Axis的jws发布WebService Axis的wsdd模式发布WebService Axis中传递复杂对象和内部类 Axis中的handler、chain的特性 Axis中处理异常信息 ...