`
anct125
  • 浏览: 29784 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

webservice之axis2配置(现有项目)

阅读更多

1.下载以及官方文档
    http://ws.apache.org/axis2

2.现有项目配置axis2
   
1)web.xml
       

          <servlet>
                <display-name>Apache-Axis Servlet</display-name>
                <servlet-name>AxisServlet</servlet-name>
                <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
           </servlet>
           <servlet-mapping>
                <servlet-name>AxisServlet</servlet-name>
                <url-pattern>/services/*</url-pattern>
           </servlet-mapping>

  

     2)相关文件拷贝
          从官方下载war包,解压后,把/WEB-INF/lib,/WEB-INF/conf,/WEB-INF/modules复制到现有项目下
         在现有项目下创建/WEB-INF/services/mydomain/META-INF/services.xml配置文件,内容例如:
         

        <serviceGroup>
               <service name="HelloWorldService">
               <description>Hello World Service</description>
               <parameter name="ServiceClass" locked="false">
                              example.HelloWorldService
               </parameter>
               <operation name="hello">
               <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
               </operation>
               </service>
          </serviceGroup>

 

 

      3)service例子:

 

package example;

import java.util.ArrayList;
import java.util.List;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;

/**
* @author an_chuantong
* @version created:Aug 30, 2008 6:15:14 PM
*          
*/

public class HelloWorldService {

public HelloWorldService() {
}

public OMElement hello(OMElement in) {
   String name = in.getText();
   System.out.println("name:" + name);
   System.out.println("in:" + in.getLocalName());
   OMNamespace omN=in.getNamespace();
   System.out.println("getNamespaceURI:" +omN.getNamespaceURI());
   OMFactory fac = OMAbstractFactory.getOMFactory();
   // OMNamespace指定此SOAP文档名称空间。
   OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
   // 创建元素sayHello,并指定其在omNs指代的名称空间中。
   OMElement resp = fac.createOMElement("helloResponse", omNs);
   // 指定元素的文本内容。
   resp.setText("安安"+name);
   List list = new ArrayList();
   list.add("act");
   list.add("anc");
   list.add("安安");
   return resp;
}

 

         通过http://localhost:8080/mydomain/services/HelloWorldService?wsdl 访问,如果能显示wsdl信息则已配置成功

4)client测试
  

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;

public class TestClient {

// targetEPR指定打包的Service(.aar文件)在容器中的物理位置。
private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/mydomain/services/HelloWorldService?wsdl");

public static OMElement getSayHelloOMElement() {
   // 创建request SOAP包。
   OMFactory fac = OMAbstractFactory.getOMFactory();
   // OMNamespace指定此SOAP文档名称空间。
   OMNamespace omNs = fac.createOMNamespace("http://helloworld.com/", "hw");
   // 创建元素sayHello,并指定其在omNs指代的名称空间中。
   OMElement method = fac.createOMElement("hello", omNs);
   // 指定元素的文本内容。
   method.setText("ZJ");

   return method;
}

public static void main(String[] args) {
   try {
    Options options = new Options();
    options.setTo(targetEPR);
    ServiceClient sender = new ServiceClient();
    sender.setOptions(options);
    OMElement sayHello = TestClient.getSayHelloOMElement();
    // 发出request SOAP,
    // 同时将得到的远端由sayHello方法返回的信息保存到result。
    // 通过services.xml能准确找到sayHello方法所在的文件。
    OMElement result = sender.sendReceive(sayHello);
   
    System.out.println(result);
if (result != null) {
     Iterator iterator = result.getChildElements();
     while (iterator.hasNext()) {
      OMElement o = (OMElement) iterator.next();
      System.out.println(o.getText());
     }
    }
   } catch (Exception axisFault) {
    axisFault.printStackTrace();
   }
}
}

 
4.jsp客户端:
jsp与独立程序的区别在于ServiceClient 的构造方式

import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;

 

 

  options.setTransportInProtocol(Constants.TRANSPORT_HTTP);//以http方式请求
 ConfigurationContext configctx            = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);
  ServiceClient sender = new ServiceClient(configctx, null);
  

 
      

分享到:
评论

相关推荐

    WebService Axis初学者

    总结:了解和掌握WebService Axis,对于Java开发者来说至关重要,因为它能帮助你在项目中快速实现服务化,提高代码复用性和系统扩展性。通过学习和实践,你将能够自如地创建、部署和调用SOAP Web服务,进一步提升你...

    axis2和已有web项目集成

    ### Axis2与现有Web项目的集成方法 在当前的软件开发领域中,Web服务技术占据了重要的地位,特别是SOAP-based Web服务的实现方式。Apache Axis2作为一款成熟且功能强大的开源工具包,提供了创建、部署和调用Web服务...

    Axis2 Eclipse WebService插件

    总的来说,Axis2 Eclipse WebService插件为开发者提供了一站式的Web服务开发解决方案,它简化了开发流程,增强了开发效率,并且由于其灵活性和可扩展性,使其成为企业级Web服务开发的首选框架之一。通过熟练掌握这个...

    webservice之axis开发实例

    Axis包含客户端和服务器端组件,可以轻松地将现有Java类转化为Web服务,或者调用远程Web服务。 3. 使用Axis开发Web服务的步骤 **第一步:创建Web服务** - 创建Java类:首先,我们需要一个包含公共方法的Java类...

    axis2 webservice for myeclipse插件Axis2_Service_Archiver_1.3.0

    在插件安装完成后,用户可以通过MyEclipse的菜单栏或者工具栏找到新的Axis2相关的选项,例如创建新的Axis2服务、导入现有的服务、部署服务到服务器等。这些功能大大提高了开发效率,使得Web服务的开发流程更加顺畅。...

    java axis webservice 开发实例

    Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...

    webservice插件_axis2.rar

    1. **axis2-eclipse-codegen-wizard-1.4.zip**:这个文件提供了代码生成向导,对于开发人员来说,能够快速从一个现有的WSDL(Web服务描述语言)文件生成服务客户端或服务端代码。通过这个向导,你可以省去手动编写...

    axis2集成到项目

    - **备份当前状态**:在开始升级前,务必备份现有的Axis2配置和部署的服务。 - **获取升级包**:这里提供的压缩包包含所有必要的代码和jar包,还有升级说明和测试类。 - **对比差异**:检查新版本的API是否有重大...

    被迫把webservice改成了axis2

    总结来说,从“被迫把WebService改成了Axis2”这一描述中,我们可以看出一个技术迁移的实例,其中涉及到技术选型、代码重构、服务配置等多个环节。这一过程不仅体现了技术的演进,也突显了开发者在面对技术变革时的...

    axis2简单webservice工程源码

    标题中的“axis2简单webservice工程源码”指的是一个基于Apache Axis2框架构建的Web服务示例项目。Apache Axis2是Java平台上一个流行的Web服务框架,用于开发、部署和执行Web服务。它提供了高效的性能、模块化架构...

    AXIS2开发webService

    - 模块化设计:AXIS2的组件可以通过插件系统轻松扩展,允许添加新的功能或替换现有模块。 - 支持多种传输协议和数据格式:除了SOAP,AXIS2还支持REST、JSON等其他数据交换格式,以及HTTP、JMS等多种传输协议。 8....

    webservice axis1.4 开发资料

    2. **开发指南**:《Axis1.4开发指南》是理解Axis1.4的入门资料,通常会涵盖安装配置、创建服务、发布服务、调用服务等步骤,还会讲解如何处理各种错误和异常,以及如何调试Web服务。 3. **jar包**:在开发过程中,...

    axis2集成到已有项目操作实例(含源代码)

    集成Axis2到现有项目的第一步通常是添加Axis2依赖。这通常涉及到修改项目的构建文件(如Maven的pom.xml或Gradle的build.gradle),将Axis2的相关库添加到依赖管理部分。确保添加的版本与项目其他依赖兼容,以避免...

    webservice配置

    这通常涉及到创建一个新的项目或在现有项目中添加Web服务相关的功能。在Java环境中,可以使用Apache CXF、Axis2或者Spring-WS等框架来实现。这些框架提供了一种简洁的方式来定义和暴露Web服务接口。 1. **设置开发...

    AXIS WebService 例子 + 分布讲解 + 完整项目

    在"AXIS WebService 例子 + 分布讲解 + 完整项目"中,我们将深入探讨以下几个关键知识点: 1. **Web服务基础**:Web服务是一种通过互联网交换业务逻辑的标准化方法。它们基于开放标准,如XML、WSDL(Web Services ...

    webService服务搭建详解

    Axis2不仅能够提供高性能的服务,还具有高度可扩展性,可以方便地集成到现有的应用程序和服务中。 ##### 2. Axis2的安装与配置 为了在Tomcat服务器上部署Axis2,你需要进行以下步骤: - **下载Axis2**:访问官方...

    使用axis在项目中开发WebService服务

    本篇文章将详细介绍如何使用Axis框架在现有Web服务器上开发一个WebService服务。 1. ** Axis简介:** Axis是Apache软件基金会的一个开源项目,它提供了基于Java的SOAP(Simple Object Access Protocol)处理和Web...

    axis2-1.6.2

    描述中提到的“Axis2创建WebService实例所需要的bin压缩包和war压缩包”,暗示了这两个文件是Axis2的核心组件,它们分别包含不同的内容以支持Web服务的开发和部署。 1. **axis2-1.6.2-bin.zip**:这个文件是Axis2的...

Global site tag (gtag.js) - Google Analytics