基于WebService的分布式应用

Web Service是建立可互操作的分布式应用程序的新平台。它定义了应用程序中如何在Web上实现互操作性。我们可以使有任何一种喜欢的语言,在任何喜欢的平台上编写Web Service。只要我们可以通过Web service标准对这些服务进行查询和访问。

XML(可扩展的标记语言)是Web Service平台中表示数据的基本格式。XML主要的优点在于它是平台无关的。Web Service定义了一个简单对象访问协议--soapsoap绑定在http协议之上。

Web Service简单地说就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。就是说,我们能够用编程的方法通过Web来调用不同服务器上可能采用不同开发语言进行开发的应用程序。

见下图:

 

 

布署:

1.首先得到以下四个压缩文件,并解压到一个目录中

 

 

 

2.找到目录axis-1_4\webapps下的axis项目,将其发布到tomcatwebapps目录下

3.得到四个jar包:

 a.axis-src-1_4\axis-1_4\lib\activation.jar

  b.xml-security-1_3_0\libs\xmlsec-1.3.0.jar

 c.JAVAMAIL_JXL_MYSQL_UPLOAD_lib\mail.jar

  d.Java\jdk1.6.0_10\lib\tools.jar

 将它们放入tomcat下的刚发布的axis项目的lib包中。

4.将axis项目WEB-INF\classes下的文件:

 

放置到apache-tomcat-6.0.16\webapps\axis文件下。

5.现在服务器布署完毕。写一个简单类测试

package com.lovo.service;

public class MyWebService {
     public String say(String name){
  
      return name+"说:你好!";
     }
  }

将编译好的 class文件,连包一起拷贝到apache-tomcat-6.0.16\webapps\axis\WEB-INF\classes目录下。

6.将SoapMonitor-deploy.wsdd文件

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    
  <handler name="soapmonitor" 
      type="java:org.apache.axis.handlers.SOAPMonitorHandler">
    <parameter name="wsdlURL" 
      value="/axis/SOAPMonitorService-impl.wsdl"/>
    <parameter name="namespace" 
      type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
    <parameter name="serviceName" value="SOAPMonitorService"/>
    <parameter name="portName" value="Demo"/>
  </handler>

  <service name="SOAPMonitorService" provider="java:RPC">
    <parameter name="allowedMethods" value="publishMessage"/>
    <parameter name="className" 
      value="org.apache.axis.monitor.SOAPMonitorService"/>
    <parameter name="scope" value="Application"/>
  </service>
</deployment>

还有deploy-myws.wsdd文件

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java= "http://xml.apache.org/axis/wsdd/providers/java"> 
     
 <service name="MyWS68" provider="java:RPC"> 
 <requestFlow> 
         <handler type="soapmonitor"/> 
      </requestFlow> 
      <responseFlow> 
         <handler type="soapmonitor"/> 
      </responseFlow>
 <parameter name="className" value="com.lovo.service.MyWebService"/>
 <parameter name="allowedMethods" value="*"/>   
  </service>
</deployment>

通过批处理文件deploywsdd.bat

set AXIS_HOME=D:\lovo\axis\axis-1_4
  set AXIS_LIB=%AXIS_HOME%\lib
    set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy-myws.wsdd

pause

告知axis项目。

启动tomcat,访问axis项目:

 

 

7.通过其他进程进行访问。

package com.lovo.test;

import javax.xml.namespace.QName;

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

public class test {
     public static void main(String[] args) {
      try{
       String endpoit = "http://localhost:8080/axis/services/MyWS68";
       Service service = new Service();
       Call call = (Call)service.createCall();
       call.setTargetEndpointAddress(new java.net.URL(endpoit));
       call.setOperationName(new QName(null,"say"));//say表示将要调用的方法
       Object[]o = new Object[1];
       o[0]="蝴蝶姐姐";
       String ret = (String)call.invoke(o);
       System.out.println(ret);
      }catch(Exception ex){
       ex.printStackTrace();        
      }
     }
    }

将axis项目中的jar包,拷贝到当前项目中。

 

 

 

 

 

启动 tomcat服务器,运行当前代码测试!

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值