`
yehao0716
  • 浏览: 22836 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

webServices学习之一——axis1实现helloWorld

    博客分类:
  • j2ee
阅读更多

上周由于工作需要,通过webservices发布服务,进行数据交换。于是果断找出09年在丽水开发时的学习笔记,webservice服务采用开源组件axis1的1.3版本实现:

 

一,新建web项目,并修改web.xml文件,将如下代码cope到web.xml文件中

 

 <servlet>  
   <servlet-name>AxisServlet</servlet-name>  
   <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  
 </servlet>  
 <servlet>  
   <servlet-name>AdminServlet</servlet-name>  
   <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>  
   <load-on-startup>100</load-on-startup>  
 </servlet>  
<servlet>  
   <servlet-name>SOAPMonitorService</servlet-name>  
   <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>  
   <init-param>  
     <param-name>SOAPMonitorPort</param-name>  
     <param-value>5001</param-value>  
   </init-param>  
   <load-on-startup>100</load-on-startup>  
 </servlet>  
  
<servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>/servlet/AxisServlet</url-pattern>  
 </servlet-mapping>  
 <servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>*.jws</url-pattern>  
 </servlet-mapping>  
 <servlet-mapping>  
   <servlet-name>AxisServlet</servlet-name>  
   <url-pattern>/services/*</url-pattern>  
 </servlet-mapping>  
 <servlet-mapping>  
   <servlet-name>SOAPMonitorService</servlet-name>  
   <url-pattern>/SOAPMonitor</url-pattern>  
 </servlet-mapping>  
  
  
 <mime-mapping>  
   <extension>wsdl</extension>  
   <mime-type>text/xml</mime-type>  
 </mime-mapping>  
 <mime-mapping>  
   <extension>xsd</extension>  
   <mime-type>text/xml</mime-type>  
 </mime-mapping>  
 

    二、在web-inf目录下新增server-config.wsdd文件,文件内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
            xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
            xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">

 <globalConfiguration>
   <parameter name="disablePrettyXML" value="true"/>
   <parameter name="dotNetSoapEncFix" value="true"/>
   <parameter name="enableNamespacePrefixOptimization" value="false"/>
   <requestFlow>
     <handler type="java:org.apache.axis.handlers.JWSHandler">
        <parameter name="scope" value="session"/>
     </handler>
     <handler type="java:org.apache.axis.handlers.JWSHandler">
        <parameter name="scope" value="request"/>
        <parameter name="extension" value=".jwr"/>
     </handler>
     <!-- uncomment this if you want the SOAP monitor -->
     <!--
     <handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
     -->
   </requestFlow>
   <!-- uncomment this if you want the SOAP monitor -->
   <!--
   <responseFlow>
     <handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
   </responseFlow>
   -->
 </globalConfiguration>

 <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
 <handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
 <handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>

 <service name="AdminService" provider="java:MSG">
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
 </service>

<!--具体的web service配置 -->
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service>
 <service name="MyServices" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="haohao.MyServices"/>
 </service>


 <transport name="http">
  <parameter name="qs:list" 
               value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:method" 
               value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:wsdl" 
               value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
 </transport>

 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>

</deployment>

 

三、在server-config.wsdd中配置要发布的文件的内容:

 

       <service name="MyServices" provider="java:RPC">

<parameter name="className" value="haohao.MyServices"/>

  <parameter name="allowedMethods" value="*"/>

  </service>

 

其中,services标签的name属性配置,访问发布的文件的名字。如:http://localhost:8888/MyTest/services/MyServices?wsdl. 中的MyServices,就是上面配置文件中的name属性值。

parameter标签的name的allowedmethods,value="*" 指所有的方法。 parameter标签的name的className, value="haohao.MyServices" 指要发布的文件。

 

 

四、加入jar文件,可以在附件中获得。

 

 

五、启动tomcat,访问地址:

http://localhost:8080/axisTest/services/MyServices?wsdl

 

结果为:

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axisTest/services/MyServices" xmlns:intf="http://localhost:8080/axisTest/services/MyServices" 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" targetNamespace="http://localhost:8080/axisTest/services/MyServices">
<!--
WSDL created by Apache Axis version: 1.3 Built on Oct 05, 2005 (05:23:37 EDT)
-->
<wsdl:message name="sayHelloRequest"></wsdl:message>
<wsdl:message name="sayHelloResponse">
<wsdl:part name="sayHelloReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="MyServices">
<wsdl:operation name="sayHello">
<wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"/>
<wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MyServicesSoapBinding" type="impl:MyServices">
<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://haohao" use="encoded"/>
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axisTest/services/MyServices" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyServicesService">
<wsdl:port binding="impl:MyServicesSoapBinding" name="MyServices">
<wsdlsoap:address location="http://localhost:8080/axisTest/services/MyServices"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
#next_pages_container { width: 5px; hight: 5px; position: absolute; top: -100px; left: -100px; z-index: 2147483647 !important; }

 

 

服务端 发布完成。

 

 

 

六、客户端:

 

TestClient.java

package haohao;


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

public class TestClient {
	
	//调用的webservice url路径
	private static String serviceUrl = "http://localhost:8080/axisTest/services/MyServices?wsdl";
	public String heihei(String name){
		String ret = null;
		try{
			Service service = new Service();
			Call cc = (Call) service.createCall();
			cc.setTargetEndpointAddress(new java.net.URL(serviceUrl));
			cc.setOperationName("sayHello");
			ret = (String) cc.invoke(new Object [] {name});
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return ret;
	}
	
	public static void main(String args[]) {
		//调用OA系统的登录表,验证OA用户登陆
		TestClient client = new TestClient();
		
		System.out.println(client.heihei("haohaoguo"));
		
		
	}
}
 

 

  • axisTest.zip (2.9 MB)
  • 描述: axis1实现helloWorld
  • 下载次数: 4
分享到:
评论

相关推荐

    axis2开发Web Services入门

    - 在 `HelloWorld` 项目中创建一个名为 `com.webservices` 的包。 - 创建一个名为 `HelloWorld.java` 的类,包含一个返回字符串的方法 `getString`。 ```java package com.webservices; public class HelloWorld {...

    webServices的简单实现

    4. **生成Web服务**:使用Axis的`wsdl2java`工具,将`HelloWorld`类转换为Web服务。这个工具会生成对应的WSDL(Web Services Description Language)文件,它是Web服务的接口定义,以及用于处理Web服务请求和服务...

    webservices调用方法

    【webservices调用方法】与【TOMCAT+AXIS进行WEBSERVICE开发的配置和HELLOWORLD程序】相关的知识点: 1. **Web Services**:Web Services是一种通过网络进行通信的软件,允许不同系统间的互操作性。它们使用标准的...

    axis web services 例子

    而 "HelloService" 文件可能是实现了一个简单的“Hello World”级别的Web服务示例,演示了自定义类的序列化和反序列化操作。 通过研究这个例子,开发者可以学习到如何在实际项目中利用Apache Axis创建高效且可靠的...

    实现webServices接口调用demo

    Web服务是一种基于网络的、平台无关的交互方式,允许不同系统之间进行数据交换。在Java中,XFire是一个流行的框架,用于快速开发和部署Web服务。本教程将深入讲解如何使用XFire在Java环境中实现Web服务接口的调用,...

    西北工业大学软件工程WebServices实验报告

    1. **创建服务**:实验可能涉及使用Java JAX-WS或.NET的ASMX创建一个简单的“Hello, World!”服务,然后发布到服务器。 2. **编写WSDL**:手动或自动生成WSDL文件,描述服务的接口和操作。 3. **消费服务**:在另...

    WebService之Axis2经典教程

    Axis2作为一款流行的Web Service引擎,不仅具备高性能、易用性等特点,还支持SOAP 1.1/1.2、RESTful Web Services等多种标准和技术,使其成为开发Web Services的理想选择。 #### 二、Axis2基础知识 **1.1 Axis2...

    Axis和WebService配置使用之Hello

    标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...

    AXIS2实现webservice代码

    AXIS2是Apache软件基金会开发的一个开放源代码的Web服务框架,主要用于构建和部署Web服务。它是基于SOAP(简单对象访问协议)和WSDL(Web服务描述语言)的,提供了高性能、灵活且可扩展的环境来创建和消费Web服务。...

    axis2 web service完整教学

    2. **创建Web Service**:对着`HelloWorld`类右键选择`Web Services &gt; Create Web Service`,配置运行时为Axis2,服务器为之前创建的Server,按照提示完成操作。 **验证服务** 1. **查看服务状态**:访问`...

    Java WebService 简单实例 方式二(axis1直接调用方式)

    Apache Axis 1 是一个用于构建和部署Java Web Services的开源框架。它提供了完整的工具链,可以用来生成客户端存根代码、服务器端服务实现以及相关的WSDL文件。Axis1支持SOAP 1.1和SOAP 1.2,并且能够很好地与其他...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,以及如何结合Axis2来构建Web Service应用程序。 首先,...

    通向架构师的道路(第十天)之Axis2_Web_Service(一).

    【通向架构师的道路(第十天)之Axis2_Web_Service(一)】 在软件开发领域,架构师的角色至关重要,他们需要对技术栈有深入理解,包括如何选择适合的工具和框架来构建高效、可扩展的系统。在本文中,我们将探讨通向...

    java axis webservice 开发实例

    例如,我们可以创建一个名为`HelloWorld`的类,其中包含一个`sayHello()`方法。 3. **生成WSDL**:使用Axis的`wsdl2java`工具,从Java类生成WSDL文件。这会创建一个描述Web服务接口的文件。 4. **部署Web服务**:...

    在WTP 2中使用Axis 1_4 构建Web Services

    在Java开发环境中,Apache Axis 1.4 是一个广泛使用的Web服务框架,它简化了Web服务的创建、部署和使用过程。而WTP(Web Tools Platform)是Eclipse IDE中的一个插件集合,为开发Web应用程序提供了强大的支持。本...

    初学webservices

    【标题】:“初学Web Services” ...对于初学者来说,从简单的"Hello, World"级别的服务开始,逐步进阶到更复杂的业务逻辑,是最佳的学习路径。记住,不断实践和查阅相关资料是掌握Web服务的关键。

    《Axis实例与分析详解》

    1. **创建服务类**:编写一个简单的服务类`HelloWorld.java`,提供一个名为`getName`的方法,该方法接收一个字符串参数`name`并返回包含问候语的字符串。 ```java public class HelloWorld { public String ...

Global site tag (gtag.js) - Google Analytics