`
shangjava
  • 浏览: 1197191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

AXIS学习笔记(一)

阅读更多

前天头告诉我用SOAP WEB服务开发一个客户程序,用来与企业内部的ERP进行交互。晚上赶快找相关的资料猛看,总算对SOAP有了一定的认识。干程序员这行真不容易,好象得不停地学习新东西,一不小心就被淘汰:(不过学习也是个很有意思的事情。好了,废话少说,让我们开始吧。

一、软件环境

1、axis-1_2 (从apache网站下载最新axis-bin-1_2.zip解压即可)

2、Tomcat5.0

3、JDK5.0

二、相关配置

1、在你的%TOMCAT_HOME%\common\lib下需要加入三个包 activation.jar、mail.jar、tools.jar

2、环境变量设置

AXIS_HOME 即axis-bin-1_2.zip解压的目录(我的是在F:\soap\axis-1_2)

AXIS_LIB即 %AXIS_HOME%\lib

AXISCLASSPATH 即 %AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar;也就是把%AXIS_LIB%下所用JAR文件都导入

三、实验一下

在%AXIS_HOME%\webapps下找到axis文件夹,将其整个拷贝到%TOMCAT_HOME%\webapps下,启动

Tomcat,打开浏览器访问http://localhost:8080/axis/,出现以下页面说明你配置成功了。很简单吧:)

四、发布我们的第一个程序

第一个程序简单的返回HELLO WORLD!

HelloWorld.java

public class HelloWorld {
public String sayHello()
{
return "HELLO WORLD!";
}
}

我们的第一种发布方式:

将HelloWorld.java拷贝到%TOMCAT_HOME%\webapps\axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下:

TestClient.java

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.rpc.ParameterMode;

public class TestClient
{
public static void main(String [] args) throws Exception {

String endpoint = "http://localhost:" +"8080"+"/axis/HelloWorld.jws";//指明服务所在位置

Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的!

call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置

call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!

String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数

System.out.println( res );
}
}

我的测试是在jbuilder2005中,注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"

可以看到在AXIS里发布服务其实是一件很容易的事,这是因为这个服务很简单的原因:)下面我们介绍第二种发布方式,这是常用的。

我们的第二种发布方式:

1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes

2、在%TOMCAT_HOME%\webapps\axis\WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件

deploy.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloWorld" provider="java:RPC">
<parameter name="className" value="HelloWorld"/>
<parameter name="allowedMethods" value="sayHello"/>
</service>
</deployment>

在DOS下转换目录到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布

同样用客户端程序访问一下:(注意和上边的差别!!)

HelloClient.java

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class HelloClient
{
public static void main(String [] args) throws Exception {

String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!

Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("sayHello" );

String res = (String) call.invoke( new Object[] {} );

System.out.println( res );
}
}

好了,相信你对AXIS已有了大致的了解。接下来将会涉及到传参数、JAVABEAN对象,及AXIS的安全问题,下次再说吧:)也欢迎和我,一个快乐的JAVA程序员,联系:)ronghao100@hotmail.com

分享到:
评论

相关推荐

    AXIS学习笔记.doc

    AXIS学习笔记

    AXIS学习笔记

    AXIS学习笔记

    Axis2版本学习笔记

    Axis2版本学习笔记Axis2版本学习笔记Axis2版本学习笔记Axis2版本学习笔记Axis2版本学习笔记Axis2版本学习笔记

    Axis2,CXF版本学习笔记

    Axis2版本学习笔记,CXF版学习笔记,WebServices学习笔记

    Axis学习笔记(网页转贴)

    axis入门,简单实用 包括三个人的博客文章

    axis开发web_service程序_学习笔记

    axis开发web_service程序_学习笔记,学习axis开发,学习笔记

    axis学习资料汇总

    axis学习资料汇总: Axis实例与分析详解; Axis学习笔记.pdf; Tomcat5.0.28下AXIS完全安装手册.doc; Axis1.4 开发指南_V1.0.pdf; AXIS入门及应用.rar; Axis开发Web+Services.doc 等等

    axis1.4学习文档

    axis1.4 webservice个人学习笔记

    axis开发资料

    项目收集的axis的相关资料~~ Axis.pdf ...AXIS学习笔记.txt WebService之axis的复杂对象传输方案.txt 使用Apache Axis部署 Web服务时的常见问题及其解决方法.txt 使用Axis开发Web Service程序.txt

    Axis 开发Web Service(学习笔记)

    网上无意中找到的... 介绍Axis 开发WEB SERVICE,挺不错的.

    Axis2_1.X学习笔记

    NULL 博文链接:https://mljavalife.iteye.com/blog/1202252

    Axis2集成SSH搭建WebService支持事务(图文详解含核心代码)

    今天特意将项目中用Axis2集成SSH实现WebService的过程记录下来,一方面做一下笔记,另一方面,方便广大码农朋友,希望能跟大家交流学习。 本文介绍用Axis2集成SSH搭建WebService。会达到的效果: 1.按照传统我们用...

    Axis2部署WebService

    使用Axis2部署WebService,这是我的一点学习 笔记, 仅供初学者了解用,呵呵呵 不需要资源分的

    WebService学习笔记.doc

    什么是 Web 服务?...3, 什么是Axis? 4, Axis相比Soap v2的优点5, 什么是WSDL? 6, 什么是WSDD? 7, 什么是UDDI? 8, AXIS的几种服务类型二, 开发,部署Web服务: 三, 在IDE下开发Web服务:

    Fluent学习笔记

    Fluent应用中容易混淆的地方 如关于Axis和Symmetry划分的差别:

    Python matplotlib学习笔记之坐标轴范围

    Python学习笔记–坐标轴范围 参靠视频:《Python数据可视化分析 matplotlib教程》链接:https://www.bilibili.com/video/av6989413/?p=6 所用的库及环境: IDE:Pycharm Python环境:python3.7 Matplotlib: ...

    Python学习笔记——Numpy数组的排序和搜索

    先构建一个一维数组 a(元素随机输入) 用sort函数进行排序,默认升序 需要降序排列的可以用下面方法 利用argsort函数则可以返回数组a中元素从小到大排列的索引值 二维数组 构建一个二维数组 t(元素随机输入) ...

Global site tag (gtag.js) - Google Analytics