微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的webservice Hello world-axis

准备:

不论是服务端还是客户端,都要导入相关包,报名如下:

activation.jar

axis-ant.jar

axis.jar

commons-discovery-0.2.jar

commons-logging-1.0.4.jar

jaxrpc.jar

log4j-1.2.8.jar

mail.jar

saaj.jar

wsdl4j-1.5.1.jar

服务端:

一个类,如下:

 

Java代码  

收藏代码

  1. package server;  
  2.   
  3. public class Hello {  
  4.     public String sayHello(String name) {  
  5.         return name + "\tHello!";  
  6.     }  
  7. }  

 在web.xml文件中加入以下配置:

Xml代码  

收藏代码

    <servlet>  
  1.     servlet-name>InterfaceService</servlet-class>org.apache.axis.transport.http.AxisServletload-on-startup>7servlet-mappingurl-pattern>/services/*>  

 为以上的类配置,建立一个文件deploy.wsdd,加入以下内容

deployment xmlns="http://xml.apache.org/axis/wsdd/"  
  •     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"service name="Hello" provider="java:RPC"         parameter name="className" value="server.Hello" />  
  • parameter name="allowedMethods" value="*" servicedeployment  新建文件deploy.bat,内容如下:

    Bat代码  

    收藏代码

      set Axis_Lib=E:\apache-tomcat-6.0.26\webapps\axisServer\WEB-INF\lib  
    1. set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%  
    2. set Axis_Servlet=http://localhost:8888/axisServer/services/InterfaceService  
    3. %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd  

     在deploy.bat文件所在的目录,用命令提示符运行该文件,运行成功后打开地址:http://localhost:8888/axisServer/services/Hello?wsdl。此时服务端已经完成,将网页内容复制下来。

    客户端:

    将复制下来的内容放在客户端根目录的wsdl文件夹下的axisServer.xml文件上:

      <?xml version="1.0" encoding="UTF-8" ?>   
  • wsdl:deFinitions targetNamespace="http://localhost:8888/axisServer/services/Hello" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8888/axisServer/services/Hello" xmlns:intf="http://localhost:8888/axisServer/services/Hello" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" - <!--   
  • WSDL created by Apache Axis version: 1.4  
  • Built on Apr 22, 2006 (06:55:48 PDT)  
  •   -->   
  • wsdl:message name="sayHelloResponse"wsdl:part name="sayHelloReturn" type="xsd:string" />   
  • wsdl:messagewsdl:message name="sayHelloRequest"wsdl:part name="name" type="xsd:string" wsdl:portType name="Hello"wsdl:operation name="sayHello" parameterOrder="name"wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest" wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse" wsdl:operationwsdl:portTypewsdl:binding name="HelloSoapBinding" type="impl:Hello"wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" wsdl:operation name="sayHello"wsdlsoap:operation soapAction="" wsdl:input name="sayHelloRequest"wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://server" use="encoded" wsdl:inputwsdl:output name="sayHelloResponse"wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8888/axisServer/services/Hello" use="encoded" wsdl:outputwsdl:bindingwsdl:service name="HelloService"wsdl:port binding="impl:HelloSoapBinding" name="Hello"wsdlsoap:address location="http://localhost:8888/axisServer/services/Hello" wsdl:portwsdl:servicewsdl:deFinitions  在同等目录下建立WSDL2Java.bat,内容如下:

    set Axis_Lib=E:\workspace\axisServerClient\Webroot\WEB-INF\lib  
  • set Output_Path=E:\workspace\axisServerClient\src  
  • set Package=server  
  • %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% axisServer.wsdl  
  •  在该文件所在目录下用命令提示符运行,运行完毕后,在src目录下,会多出一堆文件。建立测试文件测试:

    @H_931_502@package test;  
  • import java.rmi.remoteexception;  
  • import javax.xml.rpc.ServiceException;  
  • import server.HelloService;  
  • import server.HelloServiceLocator;  
  • class WeatherClient {  
  • static void main(String[] args) {  
  •         HelloService service = new HelloServiceLocator();  
  •         String info = null;  
  • try {  
  •             info = service.getHello().sayHello("July");  
  •         } catch (ServiceException e) {  
  •             e.printstacktrace();  
  • catch (remoteexception e) {  
  •         }  
  •         System.out.println(info);  
  • }     
  •  运行后会打印:July    Hello!

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

    相关推荐