`
橄榄绿
  • 浏览: 273098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web service——axis

 
阅读更多

一、服务器端

1、首先创建一个web项目,修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <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>
</web-app>

 

2、创建server-config.wsdd文件(与web.xml放在同一级目录下)

<?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>   
  <parameter name="sendMultiRefs" value="true"/>   
  <parameter name="disablePrettyXML" value="true"/>   
  <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"/>   
</globalConfiguration>   
  
  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>      
  <service name="Math.ws" provider="java:RPC"> 
     <!-- 控制类名称 -->     
     <parameter name="className" value="server.manager.MathAction"/>     
     <parameter name="scope" value="request"/>
     <!-- 方法名 --> 
     <parameter name="allowedMethods" value="getResult"/>
     <namespace>http://xml.apache.org/axis/wsdd/</namespace>
     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>   
  </service>      
  <transport name="http">      
     <requestFlow>      
        <handler type="URLMapper"/>      
     </requestFlow>      
  </transport>      
</deployment>  

 3、接口类MathService.java与实现类MathServiceImpl.java

MathService.java

package server.ws;

public interface MathService{
	
	public String MathResult(int a,int b);
}

 MathServiceImpl.java

package server.ws.impl;

import server.ws.MathService;

public class MathServiceImpl implements MathService {

	public String MathResult(int a,int b) {
		return "和为:" + (a+b)+"差为"+(a-b);
	}
}

 4、控制层MathAction.java

package server.manager;

import server.ws.MathService;
import server.ws.impl.MathServiceImpl;

public class MathAction {

	public String getResult(int a,int b){
		MathService ms = new MathServiceImpl();
		return ms.MathResult(a, b);
	}
}

 二、客户端调用

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.commons.discovery.Resource;

public class TestClient {

	
	public static void main(String[] args) {
		TestClient test = new TestClient();
		
		try {
			// 指出service所在URL
			String serverUrl = "http://192.168.9.24:8080/WebService/services/Math.ws?wsdl";

			// 创建一个服务(service)调用(call)

			Service service = new Service();

			Call call;

			call = (Call) service.createCall();
			// 通过service创建call对象

			// 设置service所在URL

			call.setTargetEndpointAddress(new java.net.URL(serverUrl));

			// 方法名与Service里的方法名保持一致

			call.setOperationName("getResult");

			// Object 数组封装了参数
			String ret = (String) call.invoke(new Object[] { 5,6 });
			System.out.println(ret);
		} catch (Exception e) {
			System.out.println("网站已关闭!!!网站正在升级之中");
			e.printStackTrace();
		}
	}

}

  所需要的jar包在下面附件里

  • 大小: 21.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics