Java中使用webservice

来源:互联网 发布:cf刷等级软件下载 编辑:程序博客网 时间:2024/05/22 08:17

下载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 0
原创粉丝点击