Ksoap

SOAP的全拼(Simple Object Access Protocol )

soap协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:
      1.SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;
      2.SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;
      3. SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;
      4.SOAP绑定(binding),使用底层协议交换信息 
SOAP 指简易对象访问协议

SOAP 是一种通信协议
SOAP 用于应用程序之间的通信
SOAP 是一种用于发送消息的格式
SOAP 被设计用来通过因特网进行通信

SOAP 独立于平台 
SOAP 独立于语言 

SOAP 基于 XML
SOAP 很简单并可扩展
SOAP 运许您绕过防火墙
SOAP 将被作为 W3C 标准来发展

1.打开MyEclipse或Eclipse


2.新建一个Web Service Project  我们命名为 
          KsoapServiceTest

3.建一个包为
          com.zhanghao.service

java2wsdl.bat文件介绍


java -cp .;../lib/axis.jar;../lib/commons-logging.jar;../lib/commons-discovery.jar;../lib/wsdl4j.jar;../lib/jaxrpc.jar;../lib/saaj.jar;../lib/mail.jar;../lib/activation.jar org.apache.axis.wsdl.Java2WSDL -o KsoapService.wsdl -l"http://localhost:8080/services/KsoapserviceTest“ com.zhanghao.service.IKsoapService
Pause

其中红色地方要注意: KsoapService.wsdl  KsoapService为要输出wsdl 文件的文件名
                              “http://localhost:8080/services/KsoapserviceTest
                              这里一般为项目名
                              com.zhanghao.service.IKsoapService
                                  这里为包名+接口名

详细命令介绍见:Java2WSDL命令参考.doc
wsdl2java.bat文件介绍


java -cp .;../lib/axis.jar;../lib/commons-logging.jar;../lib/commons-discovery.jar;../lib/wsdl4j.jar;../lib/jaxrpc.jar;../lib/saaj.jar;../lib/mail.jar;../lib/activation.jar org.apache.axis.wsdl.WSDL2Java KsoapService.wsdl --NStoPkg http://localhost:8080/KsoapserviceTest/services -S true
pause

其中红色地方要注意: KsoapService.wsdl  为刚才输出wsdl文件的文件名
                              http://localhost:8080/KsoapserviceTest/services
                              这里一般为项目名 注意跟java2wsdl.bat文件中的url区别


详细命令解释见文档:WSDL2Java命令参考A.doc  WSDL2Java命令参考B.doc 
                             
编辑web.xml文件:


    AxisServlet
   
        org.apache.axis.transport.http.AxisServlet
   



    AxisServlet
    /services/*

package com.zhanghao.client;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import com.zhanghao.service.IKsoapService;
import com.zhanghao.service.IKsoapServiceServiceLocator;

public class Client {


public static void main(String[] args) {
//第一步:创建IKsoapServiceServiceLocator的一个对象
IKsoapServiceServiceLocator locator = new IKsoapServiceServiceLocator();

//第二步:定义一个IKsoapService接口的变量
IKsoapService server = null;

//第三步:调用setKsoapserviceTestEndpointAddress方法,注意这个方法名的特点set+KsoapserviceTest(项目名)+EndpointAddress
//url的格式:http://127.0.0.1:8080/项目名/services/接口类名去掉首字母I
locator.setKsoapserviceTestEndpointAddress("http://127.0.0.1:8080/KsoapserviceTest/services/KsoapService");
//定义一个变量接收返回信息
String response = null;

try {

//得到服务
server = locator.getKsoapserviceTest();
} catch (ServiceException e) {
e.printStackTrace();
}

try {

//调用要使用的方法
response = server.test("abcd");
} catch (RemoteException e) {
e.printStackTrace();
}

//打印响应
System.out.println("*************************************");
System.out.println("响应内容为:-->>"+response);
System.out.println("*************************************");

}

}

你可能感兴趣的:(soap,java,import,myeclipse,binding,servlet)