免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1491 | 回复: 0
打印 上一主题 下一主题

新一代的Web Service实现包——AXIS2 加群:17701103 程序员小联盟 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-03 11:49 |只看该作者 |倒序浏览
Axis2是全新设计的,大家可以试试采用新的架构来让Axis更加的富有弹性,更有效率,并且更加的可配置。Axis2现在具有的一些feature:













Speed
Low memory foot print
AXIOM - AXis Object Model
Hot Deployment
Asynchronous Web Services
MEP Support -
Message Exchange Patterns
Flexibility
Stability
Component-oriented deployment
Transport framework
WSDL support




有些feature现在看不懂,还是先动手做一下,感性认识一下吧

第一步:下载AXIS2。http://ws.apache.org/axis2/download.cgi。很有趣,在apache

的Web Service

的Project目录下面还看不到AXIS2。要下那个binary的版本,因为里面有例程。

第二步:Copy

axis2.war到$TOMCAT_HOME/webapps目录下面。Tomcat好像只能用JDK1.4,我在JDK1.5

用不出来。

第三步:打开http://localhost:8080/axis2,就可以看到axis2的Welcome页面了。点一

下Validate和Services,看是不是都没有错误。都没有错误的话,就表示deploy成功了。

那个adminstration页面可以通过上传文件来hot deploy Web

service,可以用来remote deploy。

第四步:研究例程。先从"samples/userguide/src"目录下的例程看起。看到写一个web service很简单嘛:


public class MyService
{
    public OMElement echo(OMElement element)
        throws XMLStreamException {
        //Praparing the OMElement so that
                it can be attached to another OM Tree.
        //First the OMElement should be
                completely build in case it is not
                fully built and still
        //some of the xml is in the stream.
        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;
    }

    public void ping(OMElement element)
        throws XMLStreamException
        {
        //Do some processing
    }
    public void pingF(OMElement element)
        throws AxisFault{
        throw new AxisFault
                ("Fault being thrown");
    }
}




看得出来,函数统一使用OMElement作为参数。在META-INF目录下面有个services.xml文件:


<service name="MyService">
    <description>
        This is a sample Web Service
                with two operations,echo and ping.
    </description>
    <parameter name="ServiceClass"
        locked="false">userguide.example1.
        MyService</parameter>
    <operation name="echo">
        <messageReceiver
                class="org.apache.axis2.receivers.
                RawXMLINOutMessageReceiver"/>
    </operation>
    <operation name="ping">
        <messageReceiver
                class="org.apache.axis2.receivers.
                RawXMLINOnlyMessageReceiver"/>
    </operation>
</service>




呵呵,也很简单嘛。有返回值的就用RawXMLINOutMessageReceiver,没返回值的就用RawXMLINOnlyMessageReceiver。把它们编译(要把axis2的jar写到classpath里去)打包压到 MyService.aar,包里文件目录如下:


./\META-INF/services.xml
./userguide/example1/MyService.class




把MyService.aar拷贝到$TOMCAT_HOME/webapps/axis2/WEB-INF/services,然后去点一下http://localhost:8080/axis2页面上的Services,也就是http://localhost:8080/axis2/listServices.jsp,就可以看到MyService已经被列出来了。


加群:17701103 程序员小联盟,无论你喜欢任何语言的程序开发、项目管理、数据库、测试、网络、计算机理论,我们都欢迎!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP