Web Services Axis实现

1、下载 apache axis:
http://apache.etoak.com/ws/axis/1_4/
2、搭建环境:
新建一个Web项目TestWebServices
把axis-1_4\lib下的所有jar包copy到TestWebServices项目的lib项目下。
把axis-1_4\webapps\axis\WEB-INF下的Web.xml文件复制替换TestWebServices项目的Web.xml文件。
发布工程到TOMCAT里
访问
http://localhost:8080/TestWebServices/services或者
http://localhost:8080//servlet/AxisServlet
只要能出现下图 所示

[img]

[/img]
说明第一步环境搭建成功,接下来进行Web Services的核心配置。
3、用deploy.wsdd生成server-config.wsdd:
在TestWebServices项目的WEB-INF目录下编写deploy.wsdd文件
文件模板如下:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java=   
"http://xml.apache.org/axis/wsdd/providers/java">  
 <service name="AxisDemo" provider="java:RPC">  
  <parameter name="className" value="com.server.AxisDemo"/> 
  <parameter name="allowedMethods" value="*"/>  
  <parameter name="scope" value="session"/><!-- request, session, or application -->  
 </service>  
</deployment>  

根据模板中定义Class,建立一个AxisDemo的类放在包com.server下
AxisDemo类java代码如下:

package com.common;

public class AxisDemo {
    public String getInfo(String aa){   
        return "webservice:"+aa;   
    }   
}

用cmd进入TestWebServices项目的WEB-INF目录下Copy下面的代码到cmd窗口 回车执行
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://127.0.0.1:8080/TestWebServices/servlet/AxisServlet deploy.wsdd

提示如下图表示成功:

进入TomCat的TestWebServices\WEB-INF目录下可以看到server-config.wsdd已经生成。它是提供给Axis使用的配置文件。 如果没有生成请重复1,2,3
这时在访问http://localhost:8080/TestWebServices/services


会发现多了一个AxisDemo(wsdl) 尝试进行访问:
http://localhost:8080/TestWebServices/services/AxisDemo?wsdl.

4、编写客户端调用代码测试web services
package com.client;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class TestClient {

	public static void main(String[] arg) throws MalformedURLException,
			ServiceException, RemoteException {

		String targetEndPoint = "http://127.0.0.1:8080/TestWebServices/services/AxisDemo";
		Service service = new Service();
		Call call = (Call) service.createCall();
		call.setTargetEndpointAddress(new java.net.URL(targetEndPoint));
		call.setOperationName("getInfo");
		String result = (String) call.invoke(new Object[] { new String("[email protected]") });
		System.out.println("result=" + result);
	}
}

运行看到控制台输出:result=webservice:[email protected]
成功。

猜你喜欢

转载自bei-jin-520.iteye.com/blog/1723039