写在前面:

现在有很多开发webservice的方法以及框架,什么cxf等,但是这些在你编写服务类的时候都要用到注解这个功能。如果现在的jdk是1.4的,那么就不能使用注解这个功能了。所以这里可以用到axis这个工具。

1.所需jar包:

2.一般webservice在工作中,都是用在web项目中,所以创建web项目,将所需jar包放在lib目录下

3.在web.xml文件中,添加

<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>/services/*</url-pattern>
</servlet-mapping>

4.创建服务类,一个接口,一个实现类即可,首先是接口

package edu.hue.server;

public interface SayHello {

    public String say(String name);
}

  然后是接口的实现类

package edu.hue.server;

public class SayHelloImpl implements SayHello{

    public String say(String name) {

        return "Hello my friend " + name;
} }

5.下面在WEB-INF下面创建server-config.wsdd(这个文件直接创建,然后将下面的代码复制就可以了,然后根据需要添加自己的服务的配置,其实这个文件是可以自己生成的,需要自己创建一个deploy.wsdd,启动项目运行之后,会自动生成server-config.wsdd。这里为了方便,直接省略过程,只需要在server-config.wsdd上添加自己的服务就可以了,先学会用再说)

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- 这里的globalConfiguration暂时不用管是什么意思,可以先注释掉,不影响结果
<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration> --> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<!--
这里的几个服务也可以先注释掉 这是自带的服务 注释后就只显示自己的服务
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service> -->
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
<parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
<parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport> <!-- 配置自己的服务 -->
<service name="sayHello" provider="java:RPC">
<parameter name="className" value="edu.hue.server.SayHelloImpl" />
<parameter name="allowedMethods" value="*" />
</service> </deployment>

参数解释:name:为服务起的一个名字这里叫sayHello,然后下面的value="这里填的是你服务的实现类的全路径",差不多就这两个参数需要改动,其他的复制就可以了

6.运行项目,浏览器输入:http://localhost:8080/test_axis3_stub/services,回车,就可以访问了。

  http://localhost:8080/test_axis3_stub(项目名)/services(服务的访问路径,在web.xml里就配置了拦截/services/*,故这里只需要输入services,就可以访问)

这里说的都是简单的入门,如果涉及到复杂参数,如bean的传递,还需要下去研究。(貌似也需要在server-config.wsdd里面配置服务的时候,进行相关的配置)

交流群:527038646  嘻嘻嘻

最新文章

  1. c++ 成员函数
  2. Topology and Geometry in OpenCascade-Face
  3. 【读书笔记】iOS-UIFont-如何知道字体的PostScript名称
  4. Oracle同义词创建及分配用户创建同义词权限
  5. samba服务器常用指令
  6. 安装GD库解决ThinkPHP 验证码Call to undefined function Think\imagecreate()出错
  7. Oracle 表数据去重
  8. 服务器CPU使用率高的原因分析与解决办法
  9. 第28讲 UI组件之 ListView和ArrayAdapter
  10. read/load
  11. hdu 4691 最长的共同前缀 后缀数组 +lcp+rmq
  12. Selinux是什么?
  13. ecshop点滴记录
  14. Linux(9)后台运行python程序并输出到日志文件
  15. cpp - 输入输出
  16. GDAL源码编译(32位)
  17. git commit之后,想撤销commit
  18. Different between Telnet/SSH/FTP
  19. 230. Kth Smallest Element in a BST 找到bst中的第k小的元素
  20. python --爬虫基础 --爬取今日头条 使用 requests 库的基本操作, Ajax

热门文章

  1. Hadoop中Hbase的体系结构
  2. 字符串和整形数组的相互转化(JAVA程序)
  3. org.hibernate.LazyInitializationException...no session or session was closed
  4. 笔记本shift变粘贴,粘滞键设置已关闭
  5. 机器学习技法课之Aggregation模型
  6. Warning: session_start() [function.session-start]: Cannot send session cache limiter
  7. 线程(java课堂笔记)
  8. 9个常用iptables配置实例
  9. 解决Centos crontab没有按时运行的问题
  10. Netty方法误解ChannelHandlerContext.writeAndFlush(Object msg)