论坛首页 Java企业应用论坛

axis2创建web service(四)

浏览 5607 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-07   最后修改:2008-12-08
SOA

      上节我们做了一个简单的例子,调用的服务里的方法只是简单返回一个字符串,这次我们要做一个复杂点的例子,调用服务里的方法返回一个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(四)

 

 

   发表时间:2008-12-13  
多谢,通过你的讲解,让我初步认识了AXIS2,呵呵
0 请登录后投票
   发表时间:2009-02-15  
好文!!
请问Axis2与Axis1.4相比有什么优点?
0 请登录后投票
   发表时间:2009-02-15   最后修改: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 遍都不好说。
0 请登录后投票
   发表时间:2009-04-09  
楼主,你好,我从数据库中读出信息后,用构造函数初始化给一个类,然后把类返回,可是读不到这个返回类中属性的值,不知道针对这种问题是怎么解决的?
0 请登录后投票
   发表时间:2009-04-16  
大家好,我返回bean时,就会出错,返回简单类型就没有类型,不知道是怎么回事?
0 请登录后投票
   发表时间:2009-05-15  
非常感谢,由于有个项目需要和其他的应用系统做接口,本人没做过,找了两天才找到像这样比较完整,详细的学习资料。让我逐步认识了axis2,可对于怎么做接口还是不知道该如何下手,如果可以,请多多指点。QQ:328633354
谢谢!
0 请登录后投票
   发表时间:2009-06-13  
LZ有兴趣讲解下SOAP协议吧 AXIS只是个工具  返回简单类型和复杂类型是不一样的 配置下你的wsdd文件即可.
0 请登录后投票
   发表时间: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插件的使用算是知道了,但是对原理真的不是很懂,好像不是很好用
0 请登录后投票
   发表时间:2009-11-20  
Person英文写错了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics