Java中使用webservice

下载webservice使用的jar包

可以去官(http://ws.Apache.org/axis/)网下,或者到csnd我上传的资源(http://download.csdn.net/detail/luwei19881121/6834603)里面下载。

在myeclipse里面建立一个web工程

我建的工程名为axis。然后将一中的jar包放到工程的lib目录下。

在工程的WEB-INF目录下建立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>  
  <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="lu.jws" provider="java:RPC">                                        //此处的‘lu.jws’就是service的名字,可以随便取
     <parameter name="className" value="com.server.MyServer"/>                       //此处的‘com.server.MyServer’就是你的服务端的类,见下面的步骤
     <parameter name="scope" value="request"/>  
     <parameter name="allowedMethods" value="*"/>                                    //此处的‘*’代表允许调用服务端类com.server.MyServer的所有方法
     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>  
  </service>     
  <transport name="http">     
     <requestFlow>     
        <handler type="URLMapper"/>     
     </requestFlow>     
  </transport>     
</deployment> 

编写服务端类,具体代码如下:

package com.server;

public class MyServer {
	public String sayHello(String word){
		//这里可以打印出客户端传过来的信息--word。
                //*********** 这里可以写你服务端的各种操作处理
		return "server say hello!";//此为服务端返回的信息
	}
}

五 编写客户端类,具体代码如下:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;


public class MyClient {


	  
    public static void main(String[] args) throws Exception {  
  
        // 指出service所在URL,注意后面的service名称要和server-config.wsdd中的一致‘lu.jws’       
        String endpoint = "http://localhost:8080/axis/services/lu.jws";  
  
        // 创建一个服务(service)调用(call)        
        Service service = new Service();  
  
        Call call = (Call) service.createCall();// 通过service创建call对象       
  
        // 设置service所在URL         
        call.setTargetEndpointAddress(new java.net.URL(endpoint));  
  
        // 方法名(opname)要与MyServer.java你要调用的方法名保持一致,这里调用的是sayHello       
        call.setOperationName("sayHello");         
  
        String ret = (String) call.invoke(new Object[] { "client say hello!" });  
  
        System.out.println(ret);//输出的信息即为sayHello方法返回的信息  
  
    }  
	
}

六 配置WEB-INF下的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>

将你的应用部署到服务器(比如tomcat)上,然后运行服务器,再运行你客户端中的main方法,就出打印出服务端返回的信息了,具体工程的目录结构和输出消息见下图:




八 客户端和服务端传输大量数据时,可使用拼接xml格式文件的方式进行。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值