Axis基本配置与实现
2015-11-10 15:59
309 查看
简单对象访问协议(SOAP Simple Object Access Protocol)
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
webService三要素
SOAP-->描述传递信息的格式
WSDL(Web Services Description Language)-->描述访问的具体接口
UDDI(Universal Description Discovery and Integration)
-->管理,分发,查询WebService
Axis部署 WebService:
1>jar包:activation.jarasm-attrs.jarasm.jaraxis-ant.jaraxis.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jardom4j-1.6.1.jarjaxrpc.jarlog4j-1.2.8.jarmail.jarsaaj.jarwsdl4j-1.5.1.jarxerces-2.6.2.jarxml-apis.jar
XmlSchema-1.0.jar
2>配置文件server-config.wsdd+web.xml<!-- 表明这是一个axis部署描述文件 --><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 处理器 --> <handler name="URLMapper"type="java:org.apache.axis.handlers.http.URLMapper"/> <!-- 一个服务 --> <!--provider="java:RPC" webservice是以javabean的形式提供的--> <!--provider:服务类型,共有四种,分别是RPC,Document,Wrapped和Message --> <service name="axisTest"provider="java:RPC"> <!-- 指定类名 --> <!-- parameter:用来设置Axis的各种属性; --> <parameter name="className" value="com.taikang.study.studyAxis.service.PersonInfoService"/> <!-- allowedMethod用于指定一个以空格分隔的方法名,只有这些方法可以通过web service访问。 也可以将这个值指定为"* "表示所有的方法都可以访问。 --> <parameter name="allowedMethod" value="*"></parameter> </service> <!-- 指定处理器 http协议传输, transport:定义了服务器端的传输方式--> <transport name="http"> <requestFlow> <handler type="URLMapper"/><!-- 引用上边的 --> </requestFlow> </transport> </deployment>
web.xml<!--配置这个拦截器的目的是请求走给axis处理 --><servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class></servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/axis/*</url-pattern></servlet-mapping>
3>java文件
主要学习写客户端程序
4>访问路径: http://10.136.12.148:8080/myTemp/axis/axisTest?wsdl[/code]myTemp是工程名axis是web.xml中配置的名称axisTest是接口名?wsdl表示发布wsdl,这是一个webSevice描述性文件/myTemp 这个是工程的名字,表示进入了工程,执行了默认的index.jsp文件<!--制定首页,当使用IP地址http://localhost:8080/myTemp时默认会访问index.jsp --><welcome-file-list> <welcome-file>index.jsp</welcome-file></welcome-file-list>进入了/myTemp/axis:表示可以提供的一些接口,相当于一个WebService服务界面,可能这个服务界面有多个接口,这个路径在web.xml中配置,也就是说进来的WebService请求交给了org.apache.axis.transport.http.AxisServlet这个类来处理 Ø 进入了myTemp/axis/axisTest,这个路径映射具体的接口类,处理客户端请求 Ø 最后获得了接口的详细描述界面,显示了该接口的WSDL此处provider一直写成provicer,导致无法正常访问HelloAxis接口服务,改正后可以正常访问. 客户端程序:Service service = new Service();Call call = (Call)service.createCall();call.setTargetEndpointAddress(newjava.net.URL(webLogUrl));//接口的urlcall.setOperationName(new QName("http://serv","pdfSeal"));result = (String) call.invoke(new Object[] { xmlContent}); (1)实例化一个Service类,并创建一个Call实例,sevice.createCall();创建一个请求连接对象.(2)call.setTargetEndpointAddress:指定访问接口地址 call.setOperationName():指定接口名字(3)call.invoke():传参调用接口,返回结果,参数写在大括号中
相关文章推荐
- App Transport Security has blocked a cleartext HTTP
- Play2 自定义模板类型 (Java&Scala)
- C# WebService 基础实例
- sed 使用
- 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决
- yii2 控制器类命名规则
- Java流的深入理解
- 关于电脑前置USB接口插U盘就黑屏的问题
- 5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
- 在安卓系统上使用Google Analytics API V4
- Java String的常用方法
- AutoCAD数据导入SuperMap后的投影定义与投影转换
- Mosquitto简要教程
- linux下安装MYSQL详细配置(转)
- [转]SSIS Parameter和Variable的区别
- weiphp布署在sina sae图片显示不了问题
- C++ reference
- c++(hash表)
- win8打开共享提示需要输入网络凭据0x000000709怎么办?
- UIWebView 内容自适应屏幕