欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

整个配完的工程结构应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Ser

点击: 次  来源:昆山软开发 时间:2018-02-08

原文出处: 袁鸣凯

一、Axis2简介

1.1 先容Axis2

Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 类型(SOAP 1.2)和 SOAP withAttachments 类型(来自 Apache Group )的开放源代码实现。有许多风行的开拓东西都利用AXIS作为其实现支持Web处事的成果,譬喻JBuilder以及著名的Eclipse J2EE插件Lomboz。AXIS的最新版本可以从 http://ws.apache.org/axis/index.html下载。

下载下来后直接解压即可用了。下图是AXIS焦点引擎的体系布局图:

 整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P3392X5120-19420.jpg" />

整个AXIS项目包罗以下几个部门:

  • 动静流子系统
  • 动静流子系统提供了机动的动静通报框架,这个动静通报框架包罗处理惩罚措施、链、序列化措施和反序列化措施。处理惩罚措施是一个处理惩罚请求、响应和妨碍流的工具。处理惩罚措施可被组合在一起成为链,并且可以利用一个机动的陈设描写符来设置这些处理惩罚措施的顺序。

  • 传输框架子系统
  • 提供了一个传输框架,这个传输框架可以辅佐您建设本身的可插式传输发送器和传输侦听器。

  • 数据编码子系统
  • AXIS完全凭据 XML Schema 类型提供各类数据范例的自动序列化,而且提供成果扩展接口来利用您本身定制的序列化器和反序列化器。

  • 其他
  • AXIS完全支持 WSDL 以及日志记录、堕落以及妨碍处理惩罚机制。它同时提供一些东西用来讲WSDL文档转换成客户端的挪用框架以及按照类来发生WSDL界说文档。

    AXIS今朝版本支持的尺度是:W3C SOAP1.1 和 1.2;WSDL 1.1;SAAJ 1.1(SUN公司:SOAP with Attachments API for Java);JAX-RPC(SUN公司:Java APIfor XML-Based RPC)1.0。

    1.2 开拓项目中如何选择利用Axis2和其它的WebService

    ²  假如你的应用措施需要支持多语言即有C++, .net, Java,你应该选择Axis2。

    ² 假如应用措施是遵循 Spring 哲学蹊径的话,ApacheCXF 可能Spring WS是一种更好的选择,出格对嵌入式的 Web Services 来说。

    二、搭建情况

    第一步:

    打开Eclipse,成立一个尺度的Dynamic Web Project

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P33929113F-2S95.jpg" />

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P339295U20-35M4.jpg" />

    第二步:

    建落成程后,把Axis2-1.4/Axis2-1.4.1解压开来的目次下的axis2-web(如下图),整个拷入你工程的WebContent目次下:

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P3392cN0-41162.jpg" />

    第三步:

    把Axis2-1.4/Axis2-1.4.1解压开来的目次下的lib目次里的所有jar导入你工程的WEB-INF/lib目次下,并加载入工程的classpath,如下图

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P33930232Z-5b94.jpg" />

    第四步:

    在工程和src平级处新建一个目次叫external-lib

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P339304110-C4H.jpg" />

    第五步:

    把tomcat里的用于jsp, servlet理会的两个lib拷入此external-lib目次,而且以“加载外部jar”的方法插手工程的classpath中去

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P33930G530-I622.jpg" />

    第六步:

    在工程的WEB-INF目次下新建一个目次叫services目次。

    第七步:

    把Axis2-1.4/Axis2-1.4.1解压开来的目次下的repository\modules,modules这个目次,整个拷贝到你工程的WEB-INF目次下。

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P3393095910-V4Q.jpg" />

     

    整个配完的工程布局应如下图所示:

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P3393121b0-95315.jpg" />

    三、    第一个Axis2Webservice之HelloWorld

    3.1Service端代码

    package org.sky.axis2.helloworld;
    
    import org.apache.axiom.om.OMElement;
    import org.apache.axis2.AxisFault;
    import javax.xml.stream.XMLStreamException;
    
    public class HelloWorld {
    
             public OMElement sayHello(OMElement element) throws XMLStreamException {
    
                       element.build();
    
                       // Secondly the OMElement should be detached from the current OMTree so
    
                       // that it can be attached
    
                       // some other OM Tree. Once detached the OmTree will remove its
    
                       // connections to this OMElement.
                       element.detach();
                       return element;
    
             }
    }

    3.2 Service端的Web Service布署文件

    然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次,昆山软件开发,与我们的类同名,在此目次下再成立一个META-INF的目次(巨细写必需完全一致),然后在META-INF目次下新建一个services.xml,详细目次布局如下图所示:

     整个配完的工程布局应如下图所示: 三、    第一个Axis2Webservice之HelloWorld 3.1Service端代码 package org.sky.axis2.helloworld;import org.apache.axiom.om.OMElement;import org.apache.axis2.AxisFault;import javax.xml.stream.XMLStreamException;public class HelloWorld { public OMEl  <a href=劳务调派打点系统 ement sayHello(OMElement element) throws XMLStreamException { element.build(); // Secondly the OMElement should be detached from the current OMTree so // that it can be attached // some other OM Tree. Once detached the OmTree will remove its // connections to this OMElement. element.detach(); return element; }} 3.2 Service端的Web Service布署文件 然后我们在工程的WebContent\WEB-INF\services\目次下新建一个目次叫HelloWorld的目次" src="/uploads/allimg/c180208/151P339314NP-109525.jpg" />

     

    Services.xml文件的内容如下:

    <service name="HelloWorld">
    
             <parameter name="ServiceClass">org.sky.axis2.helloworld.HelloWorld</parameter>
    
        <operation name="sayHello">
            <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    
            <actionMapping>urn:sayHello</actionMapping>
    
        </operation>
    </service>

    该布署文件很容易阅读:

    1)      它声明白一个WebService的主类叫” org.sky.axis2.helloworld.HelloWorld”;