`
xiang37
  • 浏览: 430783 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

webService应用之Axis1.x

阅读更多

研究webService也有几天了,之前看到一个使用Axis2的使用教程,但是我还没有找到一个好的方式怎么使用到自己的web工程里面!可能还需要多多研究,看看官方的文档。首先可以确定的就是,肯定是可以的。

据说,Axis1.x和Axis2.0有很大的区别,并且还是不同组织开发的。无奈之下,我又回到的Axis1.x;下面记录一下我写的这个程序。很简单,一些Jar包,加上两个配置文件。

第一,两个配置文件

在web.xml文件中配置servlet

 

 

<?xml version="1.0" encoding="UTF-8"?>  
	<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/javaee"  
	    xmlns:xsi="http://www.worg/2001/XMLSchema-instance"  
	    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    
	    http://java.sun.com/xml/ns/javaee/web-app_2_xsd">  
    <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
	  
	    <welcome-file-list>  
	        <welcome-file>index.jsp</welcome-file>  
	    </welcome-file-list>  
	</web-app>  

 

 org.apache.axis.transport.http.AxisServlet

这个就是我们Servlet的类。

在和web.xml的统一目录下,配置server-config.wsdd

新建一个文件,名称为server-config.wsdd

 

 

<?xml version="1.0" encoding="UTF-8"?>  
<deployment xmlns="http://xml.apache.org/axis/wsdd/"  
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
    <globalConfiguration>  
        <parameter name="adminPassword" value="admin" />  
        <parameter name="enableNamespacePrefixOptimization"  
	            value="false" />  
        <parameter name="dotNetSoapEncFix" value="true" />  
       <parameter name="disablePrettyXML" value="true" />  
       <parameter name="sendMultiRefs" value="true" />  
	        <parameter name="sendXsiTypes" value="true" />  
       <parameter name="attachments.implementation"  
	            value="org.apache.axis.attachments.AttachmentsImpl" />  
        <parameter name="sendXMLDeclaration" value="true" />  
 
        <requestFlow>  
            <handler type="java:org.apache.axis.handlers.JWSHandler">  
              <parameter name="scope" value="session" />  
	            </handler>  
	            <handler type="java:org.apache.axis.handlers.JWSHandler">  
	                <parameter name="scope" value="request" />  
                <parameter name="extension" value=".jwr" />  
	            </handler>  
        </requestFlow>  
	    </globalConfiguration>  
  
	    <handler name="LocalResponder"  
	        type="java:org.apache.axis.transport.local.LocalResponder" />  
	    <handler name="URLMapper"  
        type="java:org.apache.axis.handlers.http.URLMapper" />  
	    <handler name="Authenticate"  
	        type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />  
	  
	    <service name="AdminService" provider="java:MSG">  
	        <parameter name="allowedMethods" value="AdminService" />  
	        <parameter name="enableRemoteAdmin" value="false" />  
	        <parameter name="className" value="org.apache.axis.utils.Admin" />  
	        <namespace>http://xml.apache.org/axis/wsdd/</namespace>  
	    </service>  
	  
	    <service name="Version" provider="java:RPC">  
	        <parameter name="allowedMethods" value="getVersion" />  
	        <parameter name="className" value="org.apache.axis.Version" />  
	    </service>  
	   <service name="UserServer" provider="java:RPC">  
	        <parameter name="allowedMethods" value="*" />  
	        <parameter name="className" value="com.xiva.bean.UserWebService" />  
	   </service>
  
    <transport name="http">  
        <requestFlow>  
            <handler type="URLMapper" />  
	            <handler  
	                type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />  
        </requestFlow>  
	        <parameter name="qs:list"  
            value="org.apache.axis.transport.http.QSListHandler" />  
        <parameter name="qs:wsdl"  
            value="org.apache.axis.transport.http.QSWSDLHandler" />  
	        <parameter name="qs:method"  
	            value="org.apache.axis.transport.http.QSMethodHandler" />  
	    </transport>  
  
	    <transport name="local">  
	        <responseFlow>  
            <handler type="LocalResponder" />  
	        </responseFlow>  
	    </transport>  
</deployment> 

 

这个里面很多代码,都是一些webService的设置;也没做具体的研究。

但是其中有一段代码使我们必须得关心的。

 

 

<service name="UserServer" provider="java:RPC">  
	        <parameter name="allowedMethods" value="*" />  
	        <parameter name="className" value="com.xiva.bean.UserWebService" />  
	   </service>

 这个就是配置我们服务的代码,其中服务的两个参数分别是允许调用的方法和类名。

 

 

package com.xiva.bean;

public class UserWebService {
	
	public String sayHello(){
		return "hello";
	}
	
	public String Hello(String name){
		return name + ", hello!";
	} 
	
	public String Login(String name, String password){
		
		if("xiva".equals(name) && "123".equals(password)){
			return "success";
		}
		else
			return "failure";
	}
}

 上面是我写的类代码!

 

第二,所需要的包

见附件,Axis1.x开发的包都在里面。解压,复制到工程中即可。注意启动服务的时候,要在工程文件中看看你的jar包是否都发到到你的工程下面。

 

好了,一个服务端的代码就这样写好了。

 

 

下面是我用Axis2.x写的一个客户端的代码,

 

 

package com.xiva.bean;

import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class LoginClient {

	public static void main(String[] args) throws AxisFault {
		String target = "http://localhost:8080/WebQClient/services/UserServer";
		//target = "http://localhost:8080/axis2/services/MyLoginService";
		RPCServiceClient client = new RPCServiceClient();
		Options options = client.getOptions();
		options.setManageSession(true);
		
		EndpointReference epr = new EndpointReference(target);
		options.setTo(epr);
		
		QName qname = new QName("http://bean.xiva.com", "Login");
		//指定调用的方法和传递参数数据,及设置返回值的类型
		Object[] result = client.invokeBlocking(qname, new Object[] { "xiva", "123" }, new Class[] { String.class });
		System.out.println(result[0]);
		
		qname = new QName("http://bean.xiva.com", "sayHello");
		result = client.invokeBlocking(qname, new Object[] {}, new Class[] { String.class });
		System.out.println(result[0]);
	}
}
 
分享到:
评论

相关推荐

    axis1.x调webservice程序

    标题“Axis1.x调用WebService程序”涉及到的是在Java环境中使用Apache Axis1工具来与Web服务进行交互的技术。Apache Axis1是一个开源项目,它提供了一种简单的方式来创建和部署Web服务,同时也支持作为客户端调用...

    WebService大讲堂之Axis2.pdf

    Axis2是Apache软件基金会提供的一款高性能、轻量级的WebService引擎,它是在Axis1.x的基础上重新设计的产物,不仅支持SOAP1.1和SOAP1.2协议,还扩展了对RESTful WebService的支持,以及Spring框架和JSON技术的集成。...

    axis2之webservice新手超详细教程.pdf

    【Axis2之WEBSERVICE新手超详细教程】主要讲解了如何使用Axis2构建Web服务,适合初学者。Axis2是一个先进的Web服务引擎,是Axis1.x的重新设计版,支持SOAP1.1和SOAP1.2协议,并且包含了RESTful Web服务以及Spring和...

    WebService之Axis2实例

    WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...

    java webservice_axis教程

    Axis2.x作为Axis1.x的升级版,引入了许多改进和新特性,例如更好的性能、更灵活的模块化结构以及更强的可扩展性。尽管本教程主要关注Axis1.x,但了解Axis2.x的用法也是必要的,因为它提供了更多的功能和优化。 在...

    WebService之Axis2经典教程

    相比于其前身Axis1.x,Axis2进行了全面的重设计,提供了更多的特性和更好的性能表现。此外,Axis2还支持多种Web服务规范,包括但不限于SOAP 1.1/1.2、WSDL、WS-Security等,同时也支持RESTful风格的服务。 **1.2 ...

    axis2之webservice新手超详细教程.docx

    标题中的“axis2之webservice新手超详细教程”是指针对Apache Axis2框架的Web服务教程,适合初学者学习。Apache Axis2是Java平台上的一个Web服务处理引擎,它提供了创建、部署和管理Web服务的能力。这个教程可能包含...

    axis2 webservice开发指南.pdf

    与前代产品**Axis1.x**相比,Axis2在架构上进行了优化,提供了更好的性能和更丰富的功能。 #### 二、准备工作 ##### **1. 下载依赖** - **Axis2核心库**:访问[Apache Axis2官方网站]...

    Axis2搭建WebService服务端demo

    &lt;version&gt;5.x.x.RELEASE &lt;groupId&gt;org.apache.axis2 &lt;artifactId&gt;axis2-adb &lt;version&gt;1.7.9 &lt;groupId&gt;org.apache.axis2 &lt;artifactId&gt;axis2-kernel &lt;version&gt;1.7.9 &lt;!-- 其他相关依赖 --&gt; ``` ...

    javawebservice应用举例.pdf

    ### Java WebService应用实例分析 #### 一、Axis2简介及安装 **Axis2**是一款功能强大的WebService引擎,它是对前一代产品Axis1.x进行了全面重构的结果。与之前的版本相比,Axis2支持SOAP 1.1和SOAP 1.2,并且集成...

    Java动态调用webService,axis2动态调用webService

    Axis2是基于SOAP(Simple Object Access Protocol)的Web服务引擎,它是Axis1.x的升级版,提供了更好的性能和可扩展性。Axis2支持多种消息传递模式,包括SOAP、RESTful等,并且集成了许多模块,如MTOM(Message ...

    axis-1_4(bin)用axis进行webservice开发

    标题中的“axis-1_4(bin)用axis进行webservice开发”表明了本文将围绕Axis 1.4版本,这是一个用于构建Web服务的开源工具,主要应用于Java平台。Axis允许开发者快速、简单地创建和部署Web服务,同时也支持消费其他Web...

    axis2_WebService_开发指南

    本文档旨在介绍如何利用Eclipse集成Axis2插件来高效地开发WebService应用。基于前文对Axis1.x的基础理解,本指南将着重于Axis2.x的功能特性与实现细节,帮助读者掌握最新版本的技术要点。 #### 二、准备工作 #####...

Global site tag (gtag.js) - Google Analytics