Android调用WebService之服务端实现(一)

来源:互联网 发布:飞凡通软件怎么用 编辑:程序博客网 时间:2024/05/21 00:47

原创文章,转载请注明出处:http://www.blog.csdn.net/tangcheng_ok

    这个简单的WebService服务将用来给Android客户端调用的,我们使用xfire来实现相关功能。WebService不多做介绍,google下一大堆呢,这里只是简单的搭建一个WebService让Android来调用。如果只做Android应用开发,那么这个工作就交给网站开发者去做吧。Android应用开发的工作是如何通过Android调用WebService,这个将在我《Android调用WebService之客户端实现(二)》中实现

一、构建WebServices

    开发环境(Myeclipse8.5+Tomcat6.0+JDK6.0)(为了方便感兴趣的朋友进行测试而没有这个开发环境,我特将次工程打成war包,war怎么用你懂的!)

    首先新建一个Web Service工程,没有什么特别的,注意在“Select web service framework & creationscenario”时选择(Create web service from Java class)并选择创建javaBean。

    “Create web service from Java class”输入“Web Services name”即可


    点击完成之后就生成了一个IHelloWorld接口类和一个实现类,接口中只有一个example(string)方法,可以再实现类HelloWorldImpl中完成具体的业务流程


    OK,下面部署Tomcat,打开浏览器输入:http://localhost:8080/WebServiceDemo/services看到效果了。


二、新建一个WebService客服端进行测试

    选择WebServiceDemo,新建一个WebServiceClient,在“Create web service test client from WSDL document”输入WSDL URL点击完成即可


    完成上面的步骤之后打开在Package Explorer中看到生成了这些文件


    在生成的类中有一个名为HelloWorldClient.java的文件,可以直接运行这个文件进行测试。当然为了验证,我们对HelloWorldClient.java和HelloWorldImpl.java两个文件中的代码稍做修改。记得改了服务器端的代码,必须重启服务器!

//HelloWorldClient.javaString result = service.example("abc");System.out.println(result);System.out.println("test client completed");System.exit(0);//HelloWorldImpl.javareturn “OK!=======”+message;

    运行程序,在控制台打印了:“OK!=======abc”,这说明我们的服务器搭建无误,可以正常使用了。为了更深入了解,再写一个简单的测试类:

package org.winplus.cl;import java.net.MalformedURLException;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import org.winplus.ws.IHelloWorld;public class TestClient {public static void main(String[] args) {Service serceModel = new ObjectServiceFactory().create(IHelloWorld.class);XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());String hwWRL = "http://localhost:8080/WebServiceDemo/services/HelloWorld";IHelloWorld srvc = null;try {srvc = (IHelloWorld) factory.create(serceModel, hwWRL);} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}String result = srvc.example("1");System.out.print(result);}}
源码地址==》

WAR包==》空间不够了,需要索取的给我留言吧。

原创粉丝点击