`

在EclipseJEE(mars)中使用Axis2开放WebService服务端接口和建立WebService客户端

 
阅读更多

准备工具:

1,eclipse-jee-mars-1-win32,

2,tomcat6

3,axis2-1.6.4-bin.zip,axis2-1.6.4-war.zip,axis2-eclipse-codegen-plugin-1.6.4.zip

 

开发流程:

采用Axis2使用SOAP协议保证WebService安全性的前提下开发WebService,

一般来说,首先总是某个服务提供端开放某个处理类或方法的接口(wsdl文件以及xsd或URL),另外一个服务调用端根据这个接口生成客户端代码,然后根据生成本地代码入口(一般需要服务实际URL)方法发送请求。

 

准备工作:

0,解压axis2工具包axis2-1.6.4-bin.zip

1,在EclipseJEE中安装好Axis2 的插件“Code generator”

2,在EclipseJEE菜单 /Window/Preferences/Web Services/Axis2 Preferences/Axis2 Runtime 中设置好"Axis2 Runtime location",是axis2-1.6.4-bin.zip解压后的路径。

3,解压axis2-1.6.4-war.zip,把.war文件放置到tomcat的webapp目录,tomcat自动解压

 

服务端步骤:

1,在EclipseJEE中新建一个"Dynamic Web Project",比如testws,编辑一个java类,用于开放WebService接口,如下代码:

 

package com.m;

public class SayHi {
	
	public String sayHello(String name){return "Hello, "+name+".";}
	public String saySorry(String name){return "Sorry,"+name+".";}
	public String getWorld(){return "Hello,World";}

}


2,修改/testws/WebContent/WEB-INF/web.xml为如下内容:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>testws9</display-name>
  <servlet>  
        <servlet-name>AxisServlet</servlet-name>  
        <servlet-class>  
            org.apache.axis2.transport.http.AxisServlet  
        </servlet-class>  
        <load-on-startup>1</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>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


3,解压axis2-1.6.4-war.zip后,将其中conf、lib、modules复制到工程中的WEB-INF目录中,axis2-web复制到WebContent目录下

 

4,建立services.xml文件(根据工具包中的文件修改axis2-1.6.4\samples\pojo\src\META-INF\services.xml),在services.xml文件中,定义服务名service name和服务需要访问的类ServiceClass,内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<service name="SayHi" scope="application">
    <description>
        POJO Service
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                         class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass">com.m.SayHi</parameter>

</service>


5,把步骤4建立的services.xml文件放在新建的路径中:\WebContent\WEB-INF\services\SayHi\META-INF

 

 

6,把testws项目作为web项目在tomcat runtime中运行,

在浏览器中输入"http://localhost:8080/testws/services/SayHi?xsd"查看请求响应数据描述文件,

在浏览器中输入"http://localhost:8080/testws/services/SayHi?wsdl"查看webservice接口描述文件,

能反映出如下xml描述内容 表示WebService已经正常开放。

 

<?xml version="1.0"?>

-<xs:schema targetNamespace="http://m.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://m.com" xmlns:ns1="http://org.apache.axis2/xsd" elementFormDefault="qualified" attributeFormDefault="qualified">


-<xs:element name="sayHello">


-<xs:complexType>


-<xs:sequence>

<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>


-<xs:element name="sayHelloResponse">


-<xs:complexType>


-<xs:sequence>

<xs:element name="return" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>


-<xs:element name="saySorry">


-<xs:complexType>


-<xs:sequence>

<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>


-<xs:element name="saySorryResponse">


-<xs:complexType>


-<xs:sequence>

<xs:element name="return" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>


-<xs:element name="getWorld">


-<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>


-<xs:element name="getWorldResponse">


-<xs:complexType>


-<xs:sequence>

<xs:element name="return" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

 

 

客户端生成调用代码、测试步骤:

方法一:

1,新建一个Java工程

2,New/ Web Services/Web Service Client/

3,Service Definition选择WSDL路径或URL

产生如下文件:

SayHi.java
SayHiLocator.java
SayHiPortType.java
SayHiPortTypeProxy.java
SayHiSoap11BindingStub.java

4,调用测试代码

 

package com.m;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

public class Testws2 {

	public static void main(String[] args) {		
		
		try {
			String req = "I'm merrick!";
			SayHiLocator s = new SayHiLocator();
			String res = s.getSayHiHttpSoap11Endpoint(new URL("http://localhost:8080/testws/services/SayHi"))
			.sayHello(req);
			System.out.println("Send: " + req);
			System.out.println("Receive: "+res);
			
		} catch (MalformedURLException | ServiceException | RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 

	}

}

测试正确情况:

 

Send: I'm merrick!
Receive: Hello, I'm merrick!.



方法二:

1,新建一个Java工程

2,菜单选择"Axis2 Code Generator",

3,选择“从WSDL文件产生Java源代码”,

4,输入“WSDL文件路径”(绝对路径),

5,默认,

6,Output画面选择新建的Java工程为代码产生目的地,选择“添加Axis2 库文件”(bin工具包)。

产生如下文件:

ExtensionMapper.java
GetWorld.java
GetWorldResponse.java
SayHello.java
SayHelloResponse.java
SayHi.java
SayHiCallbackHandler.java
SayHiStub.java
SaySorry.java
SaySorryResponse.java

7,测试调用代码

 

			SayHelloResponse r = null;
			SaySorryResponse  r2 = null;
			GetWorldResponse r3 = null;			
			SayHiStub sv = new SayHiStub("http://localhost:8080/testws9/services/SayHi");			
			
			SayHello sh = new SayHello();
			sh.setName("ABC");			
			r = sv.sayHello(sh);			
			
			SaySorry sr = new SaySorry();
			sr.setName("DEF");
			r2 = sv.saySorry(sr);
			
			GetWorld gw = new GetWorld();			
			r3 = sv.getWorld(gw);
			
			System.out.println(r.get_return());
			System.out.println(r2.get_return());
			System.out.println(r3.get_return());


其他客户端调用方法,参考\axis2-1.6.4\samples\userguide\src\userguide\clients

分享到:
评论

相关推荐

    基于axis2实现的webservice简单实现(客户端+服务端)。

    【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...

    axis2客户端调用服务端,带用户身份认证

    在提供的文件列表中,`.classpath`和`.project`是Eclipse项目配置文件,`build.xml`可能是Ant构建脚本,`src`和`bin`目录包含源代码和编译后的类,`.settings`目录存储Eclipse项目特定的设置,而`lib`目录则可能包含...

    axis生成webservice服务端和客户端详细说明及实例

    在Tomcat的`webapps`目录下创建一个名为`axis2/WEB-INF/services/HelloWorldService`的目录,并将`HelloWorldService.jar`和相关的`.aar`文件放入其中。 5. 测试服务端 启动应用服务器,访问`...

    AXIS1.4webservice服务端和客户端例子

    AXIS1.4是Apache软件基金会开发的一个开源Java库,用于构建和使用Web...通过实践这些步骤,你可以掌握如何在Java环境中使用AXIS1.4创建和调用Web服务,这对于任何涉及到远程调用和跨平台通信的项目都是至关重要的技能。

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

    本教程将讲解如何使用Spring Boot集成Apache CXF(一个强大的Java Web Service框架)来构建服务端,并探讨两种Java客户端调用Web Service接口的方法。 首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过...

    Axis2搭建WebService服务端demo

    在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...

    利用eclipse,axis2框架,搭建WebService服务端,以及如何调用接口的教程

    ### 使用Eclipse与Axis2框架搭建WebService服务端及调用接口教程 #### 一、概述 本文档将详细介绍如何利用Eclipse集成开发环境与Axis2框架来构建WebService服务端,并进一步探讨如何通过Java应用程序调用这些服务...

    axis2客户端调用webService接口,精简jar包

    本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注如何精简所需的jar包。 首先,了解Axis2客户端的基本概念是至关重要的。Axis2客户端是用于与远程Web服务交互的工具,它允许开发者通过SOAP...

    axis2生成客户端服务端代码

    接下来,我们将详细介绍如何使用Axis2插件生成客户端和服务端代码: 1. **打开Axis2 Code Generator**: - 在Eclipse中选择“File” -&gt; “New” -&gt; “Other”,然后在新出现的对话框中找到“Axis2CodeGenerator”...

    axis2发布webservice和调用axis2服务接口

    在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web服务客户端的框架,主要基于Java语言。本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解...

    Axis2与Eclipse整合开发的Web Service的服务端

    【描述】:本文将详细介绍如何在Eclipse环境中利用Axis2框架开发一个Web Service服务端,包括计算器服务CalculateService的实现步骤。 【标签】:Axis2, Eclipse, 整合开发, Web Service 【内容】: 开发Web ...

    axis2支持webservice 自动生成代码客户端服务端代码插件

    标题提及的“axis2支持webservice 自动生成代码客户端服务端代码插件”,是指Apache Axis2为Eclipse IDE提供的一套工具,旨在简化Web服务的开发流程。这个插件允许开发者通过WSDL(Web Services Description ...

    AXIS2生成webservice服务端方法.txt

    AXIS2生成webservice服务端方法.txt ,方便快捷生成webservice代码,包括服务端和客户端。

    java版WebService生成客户端和服务端的实例

    在Java世界中,WebService是一种基于XML的开放标准技术,它允许不同系统间的应用程序进行通信,跨越不同的操作系统和编程语言。本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端...

    java使用axis开发webservice服务端和客户端简单例子

    访问地址: http://127.0.0.1:8080/axis/services

    axis2webservice接口例子

    标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...

    axis2客户端调用axis1服务接口

    axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...

    Axis1 创建Webservice 服务端

    3. **生成 Stub 类**:使用Axis1的wsdl2java工具,根据Java类生成服务接口(Skeleton)和服务实现(Stub)类。这一步可以通过命令行完成,或者使用IDE如Eclipse中的插件。例如,运行以下命令: ```bash wsdl2java -...

    axis2开发webservice(二)

    资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了3部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)

    java axis 调用webservice服务端

    Java Axis调用...总的来说,Java Axis调用WebService服务端是Java分布式系统开发中的重要技能,涉及了众多的Web Services标准和技术,理解和掌握这一过程对于提升Java开发者在企业级应用开发中的能力至关重要。

Global site tag (gtag.js) - Google Analytics