axis开发webservices

请注意,本文编写于 3623 天前,最后修改于 185 天前,其中某些信息可能已经过时。

对webservices蒙了一天,研究了使用axis来开发webservices的过程,做记录。



我使用的工具:myeclipse7 , axis1.4, tomcat6



1、新建一个web工程,把axis的jar复制到web工程的lib文件夹下面。



2、新建一个java类,还是最简单。



package server;
public class SayHello {
	public String sayName() {
		return "hello";
	}
}


3、在web-info下面新建文件server-config.wsdd



填充配置信息



<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler" xmlns="http://xml.apache.org/axis/wsdd/">
  <globalConfiguration name="defaultClientConfig">
    <requestFlow name="RequestFlow1" type="">
        <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
          <parameter name="scope" value="session"/>
        </handler>
        <handler name="Handler2" 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"/>
    <transport name="http" type="">
        <requestFlow name="RequestFlow1" type="">
        <handler name="Handler1" type="URLMapper"/>
        <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
      </requestFlow>
    </transport>
    <transport name="local" type="">
        <responseFlow name="ResponseFlow1" type="">
            <handler name="Handler1" type="LocalResponder"/>
        </responseFlow>
    </transport>
  <!--这里配置了一个Web Service,如果有多个Web Service,就按这种格式在下面增加即可-->
	<service name="SayHello" provider="java:RPC">
		<parameter name="allowedMethods" value="*" />
		<parameter name="className" value="server.SayHello" />
	</service>
</deployment>


4、此时打开http://localhost:8080/test/services,会出现



And now... Some Services



SayHello (wsdl)



sayName



SayHello (wsdl) 是可以点击的。



5、使用axis的工具WSDL2Java来制作客户端,在dos窗口下进入web-info文件夹,输入命令:



Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/test/services/SayHello?wsdl



就会得到四个客户端的java文件了!



6、测试文件



package localhost.test.services.SayHello;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
public class TestSayHello {
	public static void main(String[] args) throws MalformedURLException, ServiceException, RemoteException {
		SayHelloServiceLocator locator = new SayHelloServiceLocator();
		URL wddlUrl = new URL("http://localhost:8080/test/services/SayHello?wsdl");
		SayHello say = locator.getSayHello(wddlUrl);
		System.out.print(say.sayName());
	}
}


这样就能在控制台看到hello了!



做的是一个非常简单的例子,步骤也没有过多的介绍,只为做个记录!



提供一个完整的下载地址:



webservicesTest.rar

← 上一篇 下一篇 →
Comments

添加新评论