`
weigang.gao
  • 浏览: 491264 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

axis2-1.6.2 HelloWorld

 
阅读更多

如果只是想使用Axis2编写一个WebService程序的话,非常简单。

工程的目录结构以及所需要的jar包(这里只是编写一个简单的服务端,因此并没有引入所有的jar,只是必须的一些jar)

A.编写服务器端:

1.新建一个Web工程Axis2Demo02,在WEB-INF目录下面建立services文件夹,并将所需的jar包拷贝到lib目录下

 

2.修改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>Apache-Axis2</display-name>
    <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <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>*.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.jsp</welcome-file>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>
  
</web-app>

 

2.编写符合axis2的服务端代码,目录结构如下:


 

说明:

       a)MANIFEST.MF在此可以省略,因为我们在此并不是想弄一个可以执行的jar,而只是一个可发布的服务。

 

       b)services.xml配置,核心文件,必须有,配置如下:        

<service name="helloServer" ><!--这个与URL相关:http://localhost:8089/Axis2Demo02/services/helloServer?wsdl-->
	<description>
		Please Type your service description here
	</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">server.HelloServer</parameter> <!--类的全名-->
</service>
 

       c)编写服务类HelloServer,并将eclipse自动编译的class文件放到server目录下 (该步骤可以省略) 

package server;
import model.Student;
public class HelloServer {

    public String sayHello(String name){	
		return "Hello, "+name;	
	}
    /**
     * 
     * @param studentNo
     * @return student
     */
   public Student queryStudentByNo(String stuNo){
	   
	     Student stu = new Student();
	     stu.setStuNo(stuNo);
	     stu.setName("boredStudent");
	     stu.setAge(22);
		 return stu;
		
	}
}

 

        c)编写Student,并且将eclipse自动编译生成的class文件放到model中(该步骤可以省略)

package model;

public class Student {
	
	private String stuNo;//学号
	
	private String name;
	
	private int age;
	
	public String getStuNo() {
		return stuNo;
	}

	public void setStuNo(String stuNo) {
		this.stuNo = stuNo;
	}
	

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	
	

}

 

      e)使用jar命令,打包成helloServer.jar,并将jar文件的后缀名改为helloServer.aar

           i) cd  HelloServer   进入HelloServer目录

          ii) jar cvfM helloServer.jar META-INF  将 META-INF文件夹打包成jar(文件名helloServer),这是不要添加M(大写)选项,不需要帮我们生成MANIFEST.MF文件。因为我们已经有了已经手动创建的MANIFEST.MF文件

 

jar命令行选项说明:c=创建新的存档;

                                f=指定存档文件名,在这里为helloServer.jar;

                               v=生成详细输出到标准输出上,你可以看见生成jar的过程;

                              M=不产生所有项的清单文件,即MANIFEST.MF文件。如果不配置该参数,则jar命令会自动帮我们生成MANIFEST.MF文件

 

总结:最后我们可以发现只有b和e步骤是必要的,其他的都可以省略。使用axis2开发webService,我们只需要配置一下services.xml文件就可以了,axis2就会自动将src目录下的HelloServer作为服务类。helloServer.aar的目录结构如下:


 

 

4.将helloServer.aar文件放入WEB-INF/services目录下,然后重启服务

 

 

5.访问:http://localhost:8089/Axis2Demo02/services/helloServer?wsdl,出现如下内容则说明部署成功


 

B.编写客户端测试代码:在src目录下新建RPCClient.java

import javax.xml.namespace.QName;

import model.Student;

import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;


public class RPCClient {
	public static void main(String[] args) throws Exception  
    {
        //  使用RPC方式调用WebService        
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        //  指定调用WebService的URL
        EndpointReference targetEPR = new EndpointReference(
                "http://localhost:8089/Axis2Demo02/services/helloServer");
        options.setTo(targetEPR);
        
        //  指定sayHello方法的参数值
        Object[] opAddEntryArgs = new Object[] {"高伟刚"};
        
        //  指定sayHello方法返回值的数据类型的Class对象
        Class[] classes = new Class[] {String.class};
        
        //  指定要调用的sayHello方法及WSDL文件的命名空间
        QName opAddEntry = new QName("http://server", "sayHello");
//
        // 调用sayHello方法并输出该方法的返回值
       System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
       
   //  指定queryStudentByNo方法的参数值
       Object[] stuNo = new Object[] {"201004070117"};
       
       //  指定queryStudentByNo方法返回值的数据类型的Class对象
       Class[] studentClass = new Class[] {Student.class};
       
       //  指定要调用的queryStudentByNo方法及WSDL文件的命名空间
       QName queryStudentEnty = new QName("http://server", "queryStudentByNo");
//
       // 调用queryStudentByNo方法并输出该方法的返回值
       Student student = (Student)serviceClient.invokeBlocking(queryStudentEnty, stuNo, studentClass)[0];
       System.out.println(student.getName());
       
    } 

}

 

  • 大小: 23.5 KB
  • 大小: 31.5 KB
  • 大小: 4.7 KB
  • 大小: 1.9 KB
分享到:
评论

相关推荐

    axis2-1.6.2

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.2.zip

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.2-war.zip

    标题中的"axis2-1.6.2-war.zip"指的是Apache Axis2的1.6.2版本的Web服务部署包,以WAR(Web ARchive)格式打包。Apache Axis2是一个强大且灵活的Web服务引擎,它允许开发人员创建、部署和管理Web服务。这个版本的...

    Axis2-1.6.2-bin和Axis2-1.6.2-war

    我们主要关注两个版本的Axis2:Axis2-1.6.2-bin和Axis2-1.6.2-war。 1. **Axis2-1.6.2-bin** 这个版本的Axis2是一个二进制发行版,包含了运行和开发Web服务所需的所有库和工具。其主要内容包括: - **核心库**:...

    axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2

    标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...

    axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip

    标题中的"axis2-eclipse-codegen-plugin-1.6.2.zip"和"axis2-eclipse-service-plugin-1.6.2.zip"是两个与Apache Axis2相关的Eclipse插件,用于简化Web服务的开发过程。Apache Axis2是Java平台上一个成熟的Web服务...

    Axis2-1.6.2

    标题 "Axis2-1.6.2" 指的是Apache Axis2的1.6.2版本,这是一个开源的Web服务引擎,专为构建高效、高性能的SOAP(Simple Object Access Protocol)服务而设计。SOAP是一种基于XML的协议,用于在Web上交换结构化的和...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...

    axis2-1.6.2 所需最少的jar 包 亲测!!!

    这个标题 "axis2-1.6.2 所需最少的 jar 包 亲测!!!" 指出,这是一个精简版的 Axis2 依赖集合,经过测试,可以确保基本功能的正常运行,无需额外的 jar 包。 描述中的 "自己亲自测试过!可以直接运行,没有问题" ...

    axis2-1.6.2-all完整包(源码发布版本包docs文档war包)下载.txt

    该下载包含axis2-1.6.2-bin.zip发布执行版、axis2-1.6.2-docs.zip文档包、axis2-1.6.2-src.zip源码包、axis2-1.6.2-war.zip项目包。

    axis2-1.6.2-bin

    标题“axis2-1.6.2-bin”指的是Apache Axis2的一个特定版本——1.6.2的二进制发布包。Apache Axis2是Web服务引擎,它专注于提供高性能、可扩展性和灵活性,用于构建和部署Web服务。这个版本(1.6.2)包含了运行和...

    eclipse-plugin-and-axis2-1.6.2

    配置java web service开发环境时,需要保证axis2的版本和axis2-eclipse插件的版本要一致,否者可能导致莫名其妙的编译错误。...内含:axis2-1.6.2-war.zip 和axis2-eclipsse-codegen-plugin-1.6.2.zip

    axis2-1.6.2的war包与bin包以及使用文档

    在axis2-1.6.2的war包中,包含了Axis2运行时环境的所有必要组件,如Servlet、JSP等,使得你可以直接将此war文件部署到支持Java EE的Web服务器(如Tomcat、Jetty)上,快速启动一个运行在HTTP服务器上的Axis2实例。...

    axis2-1.6.2-war axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war"和"axis2-1.6.2-bin"指的是Apache Axis2的不同版本发布形式,这两个是Apache Axis2 Web服务框架的两个核心组件,分别代表了Web应用程序(WAR)和二进制分发版。 Apache Axis2是Java世界中...

    axis2-1.6.2插件

    标题提到的 "axis2-1.6.2 插件" 是针对 Axis2 框架的一个特定版本,即 1.6.2,它包含了两个主要的压缩包文件:axis2-eclipse-codegen-plugin-1.6.2.zip 和 axis2-eclipse-service-plugin-1.6.2.zip。 1. **axis2-...

    axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2

    总的来说,"axis2-eclipse-codegen-plugin-1.6.2+axis2-eclipse-service-plugin-1.6.2"的组合为Eclipse用户提供了一套完整的Web服务开发解决方案,从生成代码到部署服务,全程都在熟悉的开发环境中完成,极大地提升...

Global site tag (gtag.js) - Google Analytics