Axis2创建WebService实例 下载本文

8. name = \; 9. }

10. return \+name; 11. }

12. public void updateData(String data){ 13. System.out.println(data+\已更新。\); 14. } 15. }

要想将HelloServiceNew类发布成Web Service,需要一个services.xml文件, 这个文件需要放在META-INF目录中,该文件的内容如下:

Xml代码

1. 2. 3. 4. Web Service例子 5.

6.

7. com.sinosoft.webservice.HelloServiceNew 8. 9.

10.

-out\

11. class=\

\ />

12.

-only\

13. class=\

er\ />

14. 15.

其中元素用于发布Web Service,一个元素只能发布一个WebService类,

name属性表示WebService名,如下面的URL可以获得这个WebService的WSDL内容:

http://localhost:8080/axis2/services/HelloServiceNew?wsdl 其中name属性名就是上面URL中\和\之间的部分。

元素表示当前Web Service的描述,元素用于设置WebService的参数,

在这里用于设置WebService对应的类名。

在这里最值得注意的是元素,该元素用于设置处理WebService方法的处理器。

例如,sayHelloNew方法有一个返回值,因此,需要使用可处理输入输出的RPCMessageReceiver类,

而updateData方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。

使用这种方式发布WebService,必须打包成.aar文件,.aar文件实际上就是改变了扩展名的.jar文件。

现在建立了两个文件:HelloServiceNew.Java和services.xml。 将HelloServiceNew.java编译,生成HelloServiceNew.class。 services.xml和HelloServiceNew.class文件的位置如下: D:\\ws\\ com\\sinosoft\\webservice\\HelloServiceNew.class

D:\\ws\\META-INF\\services.xml

在windows控制台中进入ws目录,并输入如下的命令生成.aar文件.

jar cvf ws.aar .

实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布webservice.

最后将ws.aar文件复制到\\webapps\\axis2\\WEB-INF\\services目录中,

启动Tomcat后,就可以调用这个WebService了。

另外services.xml文件中也可以直接指定WebService类的方法,如可以用下面的配置代码来发布WebService

Xml代码

1. 2. 3. Web Service例子 4.

5.

6. com.sinosoft.webservice.HelloServiceNew 7.

8.

9.

eceiver\/>

10.

11.

12.

13. class=\

/>

14. 15.

如果想发布多个WebService,可以使用元素

Xml代码

1.

2. 3. ... 4.

5. 6. ... 7. 8.

中间省略的代码同上面services.xml文件的配置。

三、 用Java实现调用WebService的客户端程序

WebService是为程序服务的,只在浏览器中访问WebService是没有意义的。调用WebService的客户端代码如下: