`
deltaj
  • 浏览: 208170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

axis2创建web service(四)

阅读更多

      上节我们做了一个简单的例子,调用的服务里的方法只是简单返回一个字符串,这次我们要做一个复杂点的例子,调用服务里的方法返回一个java Bean对象。

      

       1. 首先做一个简单的java bean ,代码如下

package com.deltaj.server;

public class Persion {
	// 姓名
	private String name;
	// 年龄
	private int age;

	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;
	}

}

 

 

2.做一个服务,里面只发布一个方面,这个方法返回这个bean。

package com.deltaj.server;

public class BeanServer {

	/**
	 * 简单的测试方法
	 * 
	 */
	public Persion testMethod(String name, int age) {
		Persion persion = new Persion();
		persion.setName(name);
		persion.setAge(age);
		return persion;
	}
}

 3.按照第二节的做法,把这个服务发布出来。

  4.同样按照第三节的方法,用这个wsdl来生成stub代码。

  5.然后我们开始做一个方法来调用一下这个服务。

package com.deltaj.client;

import com.deltaj.server.TestServerStub;

public class BeanClient {
	public static void main(String[] args) throws Exception{
		// 初始化桩文件
		TestServerStub stub = new TestServerStub();
		// 初始化TestMethod方法。
		TestServerStub.TestMethod request = new TestServerStub.TestMethod();
		// 设置bean的属性值。
		request.setName("delta ");
		request.setAge(20);
		//   
		System.out.println("The name is:"+stub.testMethod(request).get_return().getName());
		System.out.println("The age is:"+stub.testMethod(request).get_return().getAge());
	}

}

 

6.如果按照这里说的做的话,你会看到

log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService).
log4j:WARN Please initialize the log4j system properly.
The name is:delta
The age is:20

祝你好运。:)

 

 

 附录:

1. axis2创建web service(一)
2. axis2创建web service(二)
3. axis2创建web service(三)

4. axis2创建web service(四)

 

 

分享到:
评论
14 楼 xie378508297 2014-04-28  
写得太好了,谢谢lz,你还能写一些有关axis更深入一点的专题系列吗? 刚刚接触webservice, 很想学到一些更深的东西
13 楼 q269223 2013-03-14  
楼主写的非常棒,    。axis2 入门 最合适了·
12 楼 ianwei 2011-07-19  
好文章,详细清晰,不过提醒各位读者,文中涉及的插件和bin文件一定要统一版本,不然会有不少小问题的!
11 楼 peng_joy 2009-11-20  
Person英文写错了
10 楼 basakasky 2009-07-22  
andot 写道
为啥不能直接:
Persion p = stub.testMethod("delta ", 20);

这样调用呢?这样多直观多方便啊。

向这种:
System.out.println("The name is:"+stub.testMethod(request).get_return().getName());  
System.out.println("The age is:"+stub.testMethod(request).get_return().getAge());  

服务到底执行了 1 遍还是 2 遍都不好说。



测试了一下,是执行了两遍,对于axis2的Eclipse插件的使用算是知道了,但是对原理真的不是很懂,好像不是很好用
9 楼 king1065 2009-06-18  
谢谢你的文章,真是不错的东西,最近要做个接口,急需这方面资料
8 楼 fjlyxx 2009-06-13  
LZ有兴趣讲解下SOAP协议吧 AXIS只是个工具  返回简单类型和复杂类型是不一样的 配置下你的wsdd文件即可.
7 楼 phantom3 2009-06-12  
   
6 楼 heartsky189 2009-05-15  
非常感谢,由于有个项目需要和其他的应用系统做接口,本人没做过,找了两天才找到像这样比较完整,详细的学习资料。让我逐步认识了axis2,可对于怎么做接口还是不知道该如何下手,如果可以,请多多指点。QQ:328633354
谢谢!
5 楼 yzwei666 2009-04-16  
大家好,我返回bean时,就会出错,返回简单类型就没有类型,不知道是怎么回事?
4 楼 yzwei666 2009-04-09  
楼主,你好,我从数据库中读出信息后,用构造函数初始化给一个类,然后把类返回,可是读不到这个返回类中属性的值,不知道针对这种问题是怎么解决的?
3 楼 andot 2009-02-15  
为啥不能直接:
Persion p = stub.testMethod("delta ", 20);

这样调用呢?这样多直观多方便啊。

向这种:
System.out.println("The name is:"+stub.testMethod(request).get_return().getName());  
System.out.println("The age is:"+stub.testMethod(request).get_return().getAge());  

服务到底执行了 1 遍还是 2 遍都不好说。
2 楼 lihudgm 2009-02-15  
好文!!
请问Axis2与Axis1.4相比有什么优点?
1 楼 yuan29346 2008-12-13  
多谢,通过你的讲解,让我初步认识了AXIS2,呵呵

相关推荐

Global site tag (gtag.js) - Google Analytics