axis1.4开发webservice服务端(快速入门)-基于jdk1.4

时间:2022-03-03 20:57:15

写在前面:

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

1.所需jar包:

axis1.4开发webservice服务端(快速入门)-基于jdk1.4

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  嘻嘻嘻