`
阅读更多

一、安装

jsp程序员应该不会装错。首先下载axis,解压缩。将axis目录拷贝到tomcat下webapps下。ok,对就这么简单。

启动tomcat,访问http://localhost:8080/axis 检查安装是否成功

二、部署(三种方式)

(1)、Dynamic Invocation Interface ( DII)

我认为这是其中最简单的方式,也是最不想介绍的方式。

1.编写服务端程序HelloClient
  
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1   public class HelloClient
2   {
3       public String getName(String name)
4       {
5           return "hello "+name;
6       }
7   }

  
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
  
3、访问连接http://localhost:8080/axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
  
4、编写访问服务的客户端 TestHelloClient.java
  
  
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 import org.apache.Axis.client.Call;
 2   import org.apache.Axis.client.Service;
 3   import javax.xml.namespace.QName;
 4   import javax.xml.rpc.ServiceException;
 5   import java.net.MalformedURLException;
 6   import java.rmi.RemoteException;
 7   
 8   public class SayHelloClient2
 9   {
10    public static void main(String[] args)
11    {
12      try
13      {
14          String endpoint =
15            "http://localhost:8080/Axis/HelloClient.jws";
16   
17           Service service = new Service();
18           Call call = null;
19   
20           call = (Call) service.createCall();
21   
22           call.setOperationName(new QName(
23       "http://localhost:8080/Axis/HelloClient.jws",
24           "getName"));
25           call.setTargetEndpointAddress
26           (new java.net.URL(endpoint));
27   
28       String ret = (String) call.invoke(new Object[]
29       {"zhangsan"});
30       System.out.println("return value is " + ret);
31   }
32   catch (Exception ex)
33   {
34       ex.printStackTrace();
35   }
36   }
37   }

  

  
(2)、Stubs方式

这种方式对自己来说记忆很深刻,做的第一个小项目,调用别人提供的ws就是这种方式。

    1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient
  
  2、编写代理接口
  
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1   public interface HelloClientInterface
2   extends java.rmi.Remote
3   {
4      public String getName(String name)
5      throws java.rmi.RemoteException;
6   }

  
  3、编写并执行客户端程序TestHelloClient.java
  
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 
 2   import javax.xml.rpc.Service;
 3   import javax.xml.rpc.ServiceFactory;
 4   import java.net.URL;
 5   import javax.xml.namespace.QName;
 6   
 7   public class TestHelloClient
 8   {
 9   public static void main(String[] args)
10   {
11   try
12   {
13   String wsdlUrl =
14   "http://localhost:8080/Axis/HelloClient.jws?wsdl";
15   String nameSpaceUri =
16   "http://localhost:8080/Axis/HelloClient.jws";
17   String serviceName = "HelloClientService";
18   String portName = "HelloClient";
19   
20   ServiceFactory serviceFactory =
21   ServiceFactory.newInstance();
22   Service afService =
23   serviceFactory.createService(new URL(wsdlUrl),
24   new QName(nameSpaceUri, serviceName));
25   HelloClientInterface proxy = (HelloClientInterface)
26   afService.getPort(new QName(
27   nameSpaceUri, portName),
28   HelloClientInterface.class);
29   System.out.println
30   ("return value is "+proxy.getName("john") ) ;
31   }catch(Exception ex)
32   {
33   ex.printStackTrace() ;
34   }
35   }
36   }


  
(3)、Dynamic Proxy方式

(我比较喜欢用这种方式。)

1. 服务端同样使用一样的测试代码,不过打包成jar,然后放在axis目录web-inf/lib下。
2. 编写server-config.wsdd 放在axis web-inf下。
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 
 2 <?xml version="1.0" encoding="UTF-8"?>
 3 <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 4  <globalConfiguration>
 5   <parameter name="adminPassword" value="admin"/>
 6   <parameter name="enableNamespacePrefixOptimization" value="true"/>
 7   <parameter name="disablePrettyXML" value="true"/>
 8   <parameter name="sendXsiTypes" value="true"/>
 9   <parameter name="sendMultiRefs" value="true"/>
10   <parameter name="sendXMLDeclaration" value="true"/>
11   <requestFlow name="RequestFlow1">
12    <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
13     <parameter name="scope" value="application"/>
14    </handler>
15    <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">
16     <parameter name="scope" value="request"/>
17     <parameter name="extension" value=".jwr"/>
18    </handler>
19   </requestFlow>
20  </globalConfiguration>
21  <responseFlow name="ResponseFlow1">
22   <handler name="Handler1" type="LocalResponder"/>
23  </responseFlow>
24  <handler name="Handler1" type="LocalResponder"/>
25  <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
26  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
27  <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
28  <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
29  <requestFlow name="RequestFlow1">
30   <handler name="Handler1" type="URLMapper"/>
31   <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
32  </requestFlow>
33  
34  <service name="TESTWS" style="wrapped">
35   <parameter name="allowedMethods" value="*"/>
36   <parameter name="scope" value="Application"/>
37   <parameter name="className" value="HelloClient"/>
38  </service>
39 
40  <transport name="http">
41   <requestFlow name="RequestFlow1">
42    <handler name="Handler1" type="URLMapper"/>
43    <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
44   </requestFlow>
45  </transport>
46  <transport name="local">
47   <responseFlow name="ResponseFlow1">
48    <handler name="Handler1" type="LocalResponder"/>
49   </responseFlow>
50  </transport>
51 </deployment>


测试程序仍然可以是DII方式中的测试程序。
不过附带vbs脚本测试:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1 
2 Set SOAPClient = CreateObject("MSSOAP.SOAPClient30")
3 SOAPClient.MSSOAPInit("http://127.0.0.1:8080/axis/services/TESTWS?wsdl")
4 WScript.Echo SOAPClient.getName("devTest")
5 

再附带一个asp连接程序:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1 Set SOAPClient = server.CreateObject("MSSOAP.SOAPClient30")
2 SOAPClient.ClientProperty("ServerHTTPRequest"= True
3 SOAPClient.MSSOAPInit("http://127.0.0.1:8080/axis/services/TESTWS?wsdl")
4 Dim wsrequest=SOAPClient.getName("zhangsan")

不过注意,vb 和asp连接应该装 soapsdk.exe 和msxmlchs.msi软件。
分享到:
评论

相关推荐

    WebService和Ajax总结

    **WebService和Ajax总结** 在IT领域,WebService和Ajax是两种重要的技术,它们分别在Web应用程序的交互和用户体验提升上发挥了重要作用。本篇文章将全面探讨这两种技术的原理、应用及其在.NET环境下的实现。 **一...

    java使用XFire调用webService接口

    "Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...

    WebService使用JDK发布

    总结,使用JDK发布Web服务涉及的主要知识点包括:JAX-WS API、SEI、WSDL、HTTP服务器以及客户端调用。通过这些知识点,开发者可以在Java环境中方便地创建、部署和测试Web服务,实现不同系统的互联互通。

    个人总结的webservice jar包

    这个压缩包"个人总结的webservice jar包"包含了实现Web服务所需的一些关键库文件,对于理解和开发Java Web服务至关重要。 首先,我们需要了解Java中的WebService是如何工作的。在Java中,我们通常使用JAX-WS(Java ...

    WebService一——使用JDK开发WebService

    总结,使用JDK开发WebService涉及的关键点包括:理解SOAP、WSDL和UDDI等协议,使用JAX-WS提供的注解和工具,以及如何在客户端和服务器端交互。通过这个过程,开发者可以构建起跨平台、跨语言的网络通信系统,极大地...

    cxf实现webservice 常用注解总结

    CXF 实现WebService常用注解总结 CXF 实现WebService时,使用注解来指定与WebService相关的元数据,简化WebService的开发。下面总结了CXF实现WebService常用注解。 @WebService注解 @WebService注解标记Java类,...

    JavaScript调用WebService实例总结

    以下是对这个实例的详细解析和相关知识点的总结: 1. JavaScript调用机制: JavaScript通过XMLHttpRequest对象或者ActiveXObject(在旧版IE浏览器中)来实现对WebService的调用。在示例中,使用了ActiveXObject,这...

    java 调用webservice的几种方法总结

    Java 调用 Webservice 的几种方法总结中,主要介绍了使用 JDK Web 服务 API、Axis 和 XFire 等方法来调用 Webservice。下面将对每种方法进行详细的介绍。 使用 JDK Web 服务 API 使用 JDK Web 服务 API 可以实现...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    总结,本教程详细介绍了如何利用Spring Boot和Apache CXF搭建Web Service服务端,以及使用JAX-WS的`javax.xml.ws.Service`和Apache CXF的`JaxWsProxyFactoryBean`两种方式实现Java客户端调用。这些技能对于开发者来...

    详解hibernate与webservice结合使用

    ### 详解Hibernate与WebService结合使用的知识点 #### 一、Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它提供了强大的数据持久化机制。通过使用Hibernate,开发人员可以将面向对象模型映射到...

    使用RAD写WebService

    总结,使用RAD开发WebService是一个相对直观且高效的过程。从准备工具,创建项目,编写Java Bean,生成WebService,到最后的验证和测试,每一步都清晰明了。而在进行版本升级时,需要注意兼容性和配置问题,确保项目...

    WebService与SQL的结合使用

    【WebService与SQL的结合使用】...总结,WebService与SQL的结合使用,实现了跨越网络的数据访问和处理,增强了系统的互操作性和可扩展性。了解并掌握这两者如何协同工作,对于开发分布式系统和构建企业级应用至关重要。

    webservice使用总结

    本文将对Web服务的使用进行详细总结,涵盖了基础概念、技术栈、实现过程以及常见问题。 一、Web服务基础 1.1 WebService定义:WebService是一种通过XML(可扩展标记语言)进行通信的网络应用,它可以提供和消费API...

    delphi开发webservice经验总结

    用delphi调用dotnet开发的webservice经验总结,包含汉字乱码,soapheader安全验证的问题。

    使用WebService的方法返回xml格式的数据

    Web服务(WebService)是一种基于网络的、分布式的模块化组件,它使用标准的XML(可扩展标记语言)来封装数据,使得不同的应用系统之间能够互相通信。在本场景中,我们将探讨如何通过WebService来调用数据库中的数据...

    jquery调用webservice总结

    总结起来,这个示例展示了如何使用 jQuery 的 AJAX 功能与 WebService 进行通信,无论是无参数还是带参数的调用,以及如何处理返回的数据。理解这些概念对于构建基于 JavaScript 的前端应用程序并与后端服务进行交互...

    一个简单的WEBSERVICE 例子

    - **服务描述**:通常使用 WSDL (Web Services Description Language) 来描述 WebService 的接口,包括可用的方法、参数类型等信息。 - **服务发布**:服务提供者需要通过某种机制(如 UDDI)来发布 WebService 的...

    delphi开发webservice经验总结.pdf

    delphi开发webservice经验总结

Global site tag (gtag.js) - Google Analytics