Axis
axis全称Apache EXtensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器。
支持WSDL。
提供转化WSDL为Java类的工具。
提供例子程序。
提供TCP/IP数据包监视工具。
Axis是第三代Apache SOAP,从2000年起,SOAP v2开发小组开始讨论如何让Axis更加灵活、可配置,以及能够处理SOAP和来自W3C的各种XML标准。通过不断地讨论和代码编写,Axis目前取得了如下成果:
速度提高。 Axis通过基于事件的SAX对XML文档进行处理,从而在速度和效率上比Apache SOAP有所提高。
灵活性提高。
稳定性提高。
提供面向组件的部署。
提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。
支持WSDL。包括导出WSDL和客户代理生成等。
在目前发行1.1版本中有什么东西?
SOAP1.1/1.2引擎。
灵活的配置和部署系统。
支持及时自动生成SOAP服务(JWS)。
支持所有的基本数据类型,为自定义串行操作提供类型映射系统。
JavaBean的自动串行操作,包括将自定义属性类型映射到XML的属性和元素。
RPC和基于消息的SOAP服务提供者。
从部署好的服务自动生成WSDL。
WSDL2Java工具可以从WSDL描述文件中产生相应的客户和服务器端SOAP操作框架。
初步提供安全扩展,能够与Servlet2.2安全集成。
通过HTTP Cookie和与传输无关的SOAP头信息提供会话跟踪。
初步支持带附件的SOAP消息。
在EJB方面提供把EJB作为Web服务的访问途经。
基于Servlet的HTTP传输。
基于JMS的传输。
独立的服务器(但需要HTTP 服务器和Servlet容器支持)。
提供客户端、服务器端相关应用程序的样例。
Axis的运行需要如下组件包
axis.jar
jaxrpc.jar
saaj.jar
commons-logging.jar
commons-discovery.jar
wsdl4j.jar
符合JAXP-1.1的XML处理器。
http://ws.apache.org/axis/ 官方站点
2 String url = http://localhost:8080/webserviceDemo/services;
3 Service service =new Service();
4 Call call = (Call) service.createCall();
5 call.setTargetEndpointAddress(new java.net.URL(url));
6 //调用的方法名
7 call.setOperationName("test");
8 //方法中的参数 (这里可以指定参数类型,也可以使用匿名参数)
9 //call.addParameter("arg0 ", XMLType.XSD_STRING , ParameterMode.IN);
10 //call.addParameter("arg1 ", XMLType.XSD_STRING , ParameterMode.IN);
11 String backStr = (String)call.invoke(new Object[]{"1","1"}); //匿名参数
12 System.out.println("方法返回值:"+backStr);
13 } catch (MalformedURLException e) {
14 e.printStackTrace();
15 //System.out.println("new java.net.URL(url)错误!");
16 }catch (RemoteException e) {
17 e.printStackTrace();
18 //System.out.println("远程错误!");
19 }catch (ServiceException e) {
20 e.printStackTrace();
21 //System.out.println("Service 获取 Call对象失败!");
22 }