web service初探

概述:Web service是一个平台独立、低耦合的、自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。Web service为整个企业甚至多个组织之间的业务流程的集成提够了一个通用机制。Web service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,是一种简单的可共同操作的消息收发框架。

eclipse建立web service过程:

第一步:新建一个java project项目取名WebService01,再建立一个包取名为com.webservice.demo,包内新建一个类取名为demo01.java

第二步:右击项目WebService01,new-->others,选择Web Services里面的Web Service,点击Next,注意圈起来的部分

注意:

第三步:Next-->Next-->Start Server然后一路Next直到Finish,eclipse中出现以下场景:

第四步:复制路径到浏览器,选择sayHi()方法,在输入框中写入任意内容,点击invoke后在result区域会有对应的输出,如下所示:

下面演示客户端对demo01的调用:

第一步: 加入axis2的包,新建一个类取名为:demo01Service.java,如下:

package com.webservice.demo;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class demo01Service {
    public static void main(String[] args) throws AxisFault {
        RPCServiceClient serviceClient=new RPCServiceClient();
        Options options=serviceClient.getOptions();
        org.apache.axis2.addressing.EndpointReference targetEPR=new org.apache.axis2.addressing.EndpointReference("http://localhost:8081/ws01/services/demo01");
        options.setTo(targetEPR);
        
        QName sayHiEntry=new QName("http://demo.webservice.com","sayHi");
        Object[] sayHiEntryArgs=new Object[]{"my"};
        Class[] classes=new Class[]{String.class};
        System.out.println(serviceClient.invokeBlocking(sayHiEntry, sayHiEntryArgs,classes)[0]);
    }

}
其中EndpointReference,QName的取值与Start server时jsp项目存入的路径有关,尤其是与ServiceLocator文件有关:

写好后,右击demo01Service-->run as-->java application控制台会出现:hello my

原文地址:https://www.cnblogs.com/miaoying/p/6679387.html