好文档 - 专业文书写作范文服务资料分享网站

axis2 WebService 开发指南

天下 分享 时间: 加入收藏 我要投稿 点赞

30

Axis WebService 技术指南

}

}

Object[] result = client.invokeBlocking(qname, new System.out.println(result[0]);

qname = new QName(\,

result = client.invokeBlocking(qname, new Object[] System.out.println(result[0]);

target =

epr = new EndpointReference(target); options.setTo(epr);

qname = new QName(\,

result = client.invokeBlocking(qname, new Object[] System.out.println(result[0]);

qname = new QName(\,

result = client.invokeBlocking(qname, new Object[] System.out.println(result[0]);

qname = new QName(\,

result = client.invokeBlocking(qname, new Object[] System.out.println(result[0]);

Object[] { \, \ }, new Class[] { boolean.class }); \);

{ null }, new Class[] { String.class });

\;

\);

{ \ }, new Class[] { String.class });

\);

{ \ }, new Class[] { String.class });

\);

{ \ }, new Class[] { String.class });

运行后结果如下:

true

admin#登陆成功

找到的数据 找到的数据 找到的数据

4、 如果将services.xml文件

scope=\>的内容改成scope=transportsession,看看什么情况。是不是找不到session中的内容。

六、 用Spring创建的JavaBean发布成WebService

1、首先,看看这个简单的类代码:

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

31

Axis WebService 技术指南

package com.hoo.service; /**

* function:Spring的装载Bean的Service * @author hoojo

* @createDate 2011-3-9 下午06:30:26 * @file SpringService.java * @package com.hoo.service * @project Axis2WebService

* @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */

public class SpringService { }

public String getMessage() { }

return this.number + \ + this.name; public void setNumber(int number) { }

this.number = number; private String name; private int number;

public void setName(String name) { }

this.name = name;

将这个类编译后的class,放到[tomcat-home]\\webapps\\axis2\\WEB-INF\\classes中,注意带上package类路径的目录。 2、在\\webapps\\axis2\\WEB-INF\\web.xml文件中加入下面的内容:

org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext.xml 这段配置会Spring的朋友肯定知道,这个是加载spring容器和设置spring的配置文件的。

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

32

Axis WebService 技术指南

3、在[tomcat-home]\\webapps\\axis2\\WEB-INF\\classesapplicationContext.xml文件,文件中的内容如下: 中新建一个

eans 5.xsd\> class=\> 上面配置了SpringService,利用Spring的容器帮我们设置name、number这2个属性的值。 5、 在tomcat-home\\webapps\\axis2\\WEB-INF\\lib目录中有一个

axis2-spring-1.5.3.jar文件,该文件用于将被装配JavaBean的发布成WebService。同样这里我们采用手动打包发布的模式,在C盘建立一个axis2-spring-ws的目录,然后在此目录中新建一个META-INF的目录,目录中添加一个services.xml文件,内容如下:

Spring aware

org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier

SpringBeanService

mep=\

class=\ />

在文件中需要通过ServiceObjectSupplier参数指定

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

33

Axis WebService 技术指南

SpringServletContextObjectSupplierApplicationContext对象; 然后用jar命令创建aar文件

类来获得Spring的

然后将生产的aar文件,[tomcat_home]\\webapps\\axis2\\WEB-INF\\services目录中 6、 然后重启tomcat,访问:

http://localhost:8080/axis2/services/listServices 就可以看到刚才发布的springService了

7、 编写客户端测试代码

package com.hoo.service; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; /** * function:SpringService客户端代码 * @author hoojo * @createDate 2011-3-14 上午14:21:59 * @file LoginServiceClient.java * @package com.hoo.service * @project Axis2WebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class SpringServiceClient { 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

34

Axis WebService 技术指南

}

public static void main(String[] args) throws AxisFault { }

String target =

RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); options.setManageSession(true);

EndpointReference epr = new EndpointReference(target); options.setTo(epr);

QName qname = new QName(\, Object[] result = client.invokeBlocking(qname, new System.out.println(result[0]);

\;

\);

Object[] { null }, new Class[] { String.class });

运行后,看到bean注入的值有输出。 1#hoojo 七、 异步调用WebService

异步,说到异步需要首先将以下同步。同步就是代码按照顺序执行,当前面的代码的请求没有正常返回结果的情况下,后面的代码是不能运行。而异步正好和这点不同,异步是代码运行后,不管当前的请求是否返回结果,后面的代码都会继续运行。 关于异步在此就不再赘述了,有兴趣的可以去网上查查这方面的资料。 1、 编写服务器端的代码。 package com.hoo.service; /** * function:异步WebService服务器端代码 * @author hoojo * @createDate 2011-3-14 上午08:16:59 * @file AsynchronousService.java * @package com.hoo.service * @project Axis2WebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class AsynchronousService { public String execute() { System.out.println(\正在执行此代码……\); //延迟5秒后,返回结果 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

axis2 WebService 开发指南

30AxisWebService技术指南}}Object[]result=client.invokeBlocking(qname,newSystem.out.println(result[0]);
推荐度:
点击下载文档文档为doc格式
0pq1q8e53z1x2cx44ea3
领取福利

微信扫码领取福利

微信扫码分享