`
阅读更多

axis版本是apache axis-bin-1_3,可以到apache网站下载。


1.环境变量设置
AXIS_HOME
即axis-bin-1_2.zip解压的目录(我的是在 F:\opensource\axis-1_2)
AXIS_LIB
即 %AXIS_HOME%\lib

2.导入jar包
将axisa解压缩后,复制lib目录下列jar包到应用目录的lib目录:
saaj.jar
wsdl4j-1.5.1.jar
jaxrpc.jar
commons-logging-1.0.4.jar
commons-discovery-0.2.jar
axis-schema.jar
axis-ant.jar
axis.jar

3.修改web.Xml
将axis需要的servlet复制到应用的web.xml文件里面,注意顺序。
重新启动服务,可以访问“/servlet/AxisServlet”试一下,
比如:http://10.162.11.70:9080/newsdaoa/servlet/AxisServlet
<servlet id="Servlet_12"></servlet>
<servlet-name></servlet-name>AxisServlet
<display-name></display-name>Apache-Axis Servlet
<servlet-class></servlet-class>
org.apache.axis.transport.http.AxisServlet


<servlet id="Servlet_13"></servlet>
<servlet-name></servlet-name>AdminServlet
<display-name></display-name>Axis Admin Servlet
<servlet-class></servlet-class>
org.apache.axis.transport.http.AdminServlet

<load-on-startup></load-on-startup>100

<servlet id="Servlet_14"></servlet>
<servlet-name></servlet-name>SOAPMonitorService
<display-name></display-name>SOAPMonitorService
<servlet-class></servlet-class>
org.apache.axis.monitor.SOAPMonitorService

<init-param></init-param>
<param-name></param-name>SOAPMonitorPort
<param-value></param-value>5001

<load-on-startup></load-on-startup>100

<servlet-mapping id="ServletMapping_12"></servlet-mapping>
<servlet-name></servlet-name>AxisServlet
<url-pattern></url-pattern>/servlet/AxisServlet

<servlet-mapping id="ServletMapping_13"></servlet-mapping>
<servlet-name></servlet-name>AxisServlet
<url-pattern></url-pattern>*.jws

<servlet-mapping id="ServletMapping_14"></servlet-mapping>
<servlet-name></servlet-name>AxisServlet
<url-pattern></url-pattern>/services/*

<servlet-mapping id="ServletMapping_15"></servlet-mapping>
<servlet-name></servlet-name>SOAPMonitorService
<url-pattern></url-pattern>/SOAPMonitor


4.添加服务

将server-config.wsdd文件复制到发布应用的WEB-INF目录下,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。
如果还没有server-config.wsdd文件,可以先写一个发布描述文件,然后用axis来生成,以后需要发布新的服务,直接往里面添加即可。
比如有一个HelloWorld.class类,里面有sayHello(String msg)方法,想把它发布webservices,先写发布文件deploy.wsdd文件,即SOAP服务发布描述文件deploy.wsdd
<deployment xmlns="&lt;a href=" http:="" xml.apache.org="" wsdd="" axis=""></deployment>http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloWorld" provider="java:RPC"></service>
<parameter value="HelloWorld" name="className"></parameter>
<parameter value="sayHello" name="allowedMethods"></parameter>

进入dos窗口,执行下列命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
即可生成server-config.wsdd文件。
如果想发布新的服务,直接往server-config.wsdd里面添加service描述,比如想把知识管理模块导入知识功能发布成webservices,对应的程序文件是com.lc.v3.ecp.km.inteface.KmDelegate.java,需要发布的方法是importKm(String kmXmlStr),将此文件编译成class后,放到发布系统的相应目录下,往server-config.wsdd添加下列描述:
<service name="ImportKm" provider="java:RPC"></service>
<parameter value="com.lc.v3.ecp.km.inteface.KmDelegate" name="className"></parameter>
<parameter value="importKm" name="allowedMethods"></parameter>

重新启动服务,一个新的webservices就发布成功了,如果系统发布地址是http://10.162.11.70:9080/newsdaoa
调用的url是:http://10.162.11.70:9080/newsdaoa/services/ImportKm

5.给服务添加Handler

J2EE Web 服务中的Handler技术特点非常像Servlet技术中的Filter。我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请求进行过滤,然后才到达提供服务的Servlet,这些Filter的功能往往是对请求进行统一编码,对用户进行认证,把用户的访问写入系统日志等。相应的,Web服务中的Handler通常也提供一下的功能:
对客户端进行认证、授权;
把用户的访问写入系统日志;
对请求的SOAP消息进行加密,解密;
为Web Services对象做缓存。

SOAP消息Handler能够访问代表RPC请求或者响应的SOAP消息。在JAX-RPC技术中,SOAP消息Handler可以部署在服务端,也可以在客户端使用。
至于如何开发handler,可以到网上去搜索陈亚强写的《使用Handler来增强Web服务的功能》,人家写的比较好,我就不在这废话了。
比如服务必须有用户名和密码才能访问,可以添加axis自带的检验认证handler,用户名和密码存放在\WEB-INF下的users.lst文件中。handler分别是:
//访问者必须提供用户名和密码,只要用户名和密码正确即可
org.apache.axis.handlers.SimpleAuthenticationHandler
//访问者必须提供指定的用户名和密码,用户名和密码正确即可
//在services中用allowedRoles属性指定访问的用户名
org.apache.axis.handlers.SimpleAuthorizationHandler

如果想给上面的ImportKm服务添加用户校验,并且只允许用户是pubnet,密码是123456的用户访问,首先往users.lst添加用户名和密码,格式是:
pubnet 123456
user1 pass1
user2
user3 pass3

改变上述server-config.wsdd里面service的描述:
<service name="ImportKm" provider="java:RPC"></service>
//添加handler,直接指定java类
<requestflow name="checks"></requestflow>
<handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"></handler>
<handler type="java:org.apache.axis.handlers.SimpleAuthorizationHandler"></handler>

<parameter value="pubnet" name="allowedRoles"></parameter>
<parameter value="com.lc.v3.ecp.km.inteface.KmDelegate" name="className"></parameter>
<parameter value="importKm" name="allowedMethods"></parameter>

除了上面方式外,还可以先单独声明handler,然后再添加到service里,比如自己开发了一个日志handler,用来记录每次对webservice的访问,程序是com.lc.v3.ecp.pub.webservies. AxisLogHandler,添加方式改变为:
//先单独定义日志handler
<handler name="logging" type="java:com.lc.v3.ecp.pub.webservies.AxisLogHandler"></handler>
//日志记录文件
<parameter value="c:/log/EcpService.log" name="filename"></parameter>

//再往service添加
<service name="ImportKm" provider="java:RPC"></service>
<requestflow name="checks"></requestflow>
//引用log定义

PS:....................................

第二种发布方式:

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 xml.apache.org="" wsdd="" axis=""></deployment>
<rpc><br><parameter></parameter><br><parameter></parameter><br><br><br><br>在DOS下转换目录到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:<br><br>java-cp%AXISCLASSPATH%org.apache.axis.client.AdminClientdeploy.wsdd<br><br>你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布<br><br>同样用客户端程序访问一下:(注意和上边的差别!!)<br><br>HelloClient.java<br><br>importorg.apache.axis.client.Call;<br>importorg.apache.axis.client.Service;<br><br>publicclassHelloClient<br>{<br>publicstaticvoidmain(String[]args)throwsException{<br><br>Stringendpoint="http://localhost:"+"8080"+"/axis/services/HelloWorld";//注意!差别仅仅在这里!!<br><br>Serviceservice=newService();<br>Callcall=(Call)service.createCall();<br>call.setTargetEndpointAddress(newjava.net.URL(endpoint));<br>call.setOperationName("sayHello");<br><br>Stringres=(String)call.invoke(newObject[]{});<br><br>System.out.println(res);<br>}<br>}</rpc>

来自: http://bound.blogdriver.com/bound/1120135.html

分享到:
评论

相关推荐

    axis 发布webservice的步骤

    标题中的“axis发布webservice的步骤”涉及到的是在Java环境中使用Apache Axis库创建并部署Web服务的过程。Apache Axis是开源的Web服务工具包,它允许开发者通过简单的API将Java类暴露为Web服务,或者调用远程Web...

    axis发布webservice教程源代码

    【标题】"Axis发布Web服务教程源代码"指的是使用Apache Axis框架来创建并发布Web服务的教学资源,其中可能包含了详细的步骤、示例代码以及相关的配置文件。Apache Axis是开源的Java库,它允许开发者在Java平台上快速...

    AXIS发布webservice

    AXIS发布WebService是一个在IT行业中常见的任务,尤其在企业级应用集成或Web服务开发中扮演着重要角色。AXIS是一个开放源码的Java库,它提供了用于创建、部署和使用Web服务的工具和API。本篇文章将深入探讨AXIS如何...

    spring集成axis发布webservice源码

    spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码

    axis发布webservice详细步骤(以实例讲解)

    在本文中,我们将深入探讨如何使用Axis框架发布Web服务,以实例的方式逐步解析整个过程。首先,我们需要了解Axis,它是一个开源的Java Web服务开发工具,由Apache软件基金会开发,用于简化SOAP(简单对象访问协议)...

    使用myEclipse,tomcat 和Axis发布webService

    【使用myEclipse,tomcat 和Axis发布webService】教程 在IT行业中,Web服务是一种标准的通信方式,使得不同的应用程序之间能够交换数据。本文将详细介绍如何使用myEclipse集成开发环境,Apache Tomcat服务器以及...

    使用myEclipse,tomcat和Axis发布webService.pdf

    ### 使用myEclipse, tomcat和Axis发布WebService详解 #### 一、准备工作: 1. **安装Axis**: - 访问官方网站 [http://ws.apache.org/axis/](http://ws.apache.org/axis/) 下载 Axis 包。 - 本示例中使用的是 `...

    Axis1发布webservice服务

    本项目是一个关于如何使用Axis1发布Web服务的示例,包含了必要的jar包和其他文件,可以直接运行。 首先,我们需要了解Web服务的基本概念。Web服务是一种基于互联网协议的软件,能够通过XML(eXtensible Markup ...

    Weblogic10.3及tomacat6.0下使用axis发布webService

    详细描述了如何在tomacat6.0下发布webService,并以此为基础,进一步重点描述了如何在Weblogic10.3下发布webService。网上多半描述的是Weblogic8.1版本,而很少有关Weblogic10版本下发布webService。据本人了解,这...

    SpringBoot开发WebService之Axis示例

    在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web服务。SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供...

    axis2发布webservice和调用axis2服务接口

    1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...

    axis2webservice接口例子

    标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...

    Axis2WebService 源码

    Axis2 WebService是一个开源的、基于Java的Web服务框架,由Apache软件基金会开发。它提供了构建和部署Web服务以及处理SOAP消息的强大工具。这个源码包可能是为了帮助开发者深入理解Axis2的工作原理,或者用于自定义...

    axis调用webservice接口所需jar包.rar

    axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...

    Spring集成axis2实现webservice所用到的包

    4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试...

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

    通过本教程,你将了解到如何按照传统的SSH方式编写代码,如何利用Axis2发布WebService,以及如何在一个项目中配置多个WebService接口。此外,还会探讨提高WebService安全性的一些建议,并提供服务端和客户端的测试...

    Android axis调用Webservice

    - 服务发布后,可以通过Axis2的wsdl2java工具,根据服务的WSDL(Web Service Description Language)文件生成客户端所需的Java类(stubs)。 - 这些类将封装调用Web Service的具体方法,简化了调用流程。 4. **...

    axis+webservice教程+帮助文档

    axis+webservice教程+帮助文档

    webService—Axis实例webService—Axis实例webService—Axis实例

    webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例

    Axis实现webservice完整实例

    ** Axis 实现 WebService 完整实例** 在 IT 领域,Web 服务是一种用于应用程序之间进行通信的标准协议,而 Axis 是一个流行的开源 Java 框架,它允许开发者轻松地创建和部署 Web 服务。本实例将详细介绍如何使用 ...

Global site tag (gtag.js) - Google Analytics