Welcome

首页 / 软件开发 / 数据结构与算法 / 通向架构师的道路 第十一天 Axis2 Web Service(二)

通向架构师的道路 第十一天 Axis2 Web Service(二)2013-02-13 csdn lifetragedy一、总结前一天

前一天中我们讲述了如何生成一个Axis2的WebService, 如何布署以及4种不同的客户端, 它们是: 传统式, 非阻塞式, 双工模式, 双工非阻塞。

并且我们看到了一个Axis2的Web Service的布署描述:

<service name="HelloWorld">
<parameter name="ServiceClass">org.sky.axis2.helloworld.HelloWorld</parameter>
<operation name="sayHello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
<actionMapping>urn:sayHello</actionMapping>
</operation>
</service>
这个描述代表我们的这个Web Service的方法有一进一出两个参数,且是Axis2特有的” OMElement”类型。

那么,我们想要一个public String sayHello(String name)这样的一种简单的java类型来书写我们的WebService可以吗?

当然,只不过我们的布署描述和我们的客户端调用返回值上稍稍有一些不一样。

二、使用简单Java类型书写我们的WebService

HelloJava类:

package org.sky.axis2.helloworld.javatype;
import javax.xml.stream.XMLStreamException;
import org.apache.axiom.om.OMElement;
public class HelloJava {
public String sayHello(String name) throws XMLStreamException {
StringBuffer hello = new StringBuffer();
hello.append("hello: ");
hello.append(name);
return hello.toString();
}
}
Service描述文件:

此时我们相应的布署文件就是service.xml文件内容稍稍不一样,来看

<service name="HelloJava">
<parameter name="ServiceClass" locked="false">
org.sky.axis2.helloworld.javatype.HelloJava
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<actionMapping>urn:sayHello</actionMapping>
</service>