大家好,这是我写的第一篇博客。这篇博客主要来讲述一下我学习webservice的第一步,很艰辛。我现在在一家公司实习,还没毕业,苦逼的日子啊 ,不但要上班还的写毕业设计。今天下午,我的导师(公司给每个实习生指定的一个带你的人)问我接触过webservice没,我一听根据翻译过来感觉很容易的样子,不就是"web服务"吗。可是我还真没有接触过。他就叫我马上去学然后写一个Demo。然后,然后我屁颠屁颠的在网上去找相关的东西。先是根据别人的描述大概明白了webservice就是一个跨平台,跨语言的一个让需要的人可以远程访问服务器上的功能模块的一个框架吧,请谅解,我现在也不是很熟悉。看了很多个人的描述发现大家写的都差不多(百度百科),呵呵。我就想着这样下去还不如实战一下,写个小实例不是更好。所以就找了几个人的博客看。
可是我发现他们写的都不是很清晰,不是我说有的语句都不通顺,哎,可苦了我了。经过努力调试,查找,终于弄好了。索性我就写下来。跟大家分享一下,也可以记下来以便日后回顾。
第一步、下载axis安装包,此处不知为何上传不了,这里给大家一个下载链接 http://download.csdn.net/download/baobeituping/1473237
第二步、在MyEclipse里面新建一个web工程webserviceDemo,然后把axis安装包解压,将解压后的文件里面的webapps\axis\WEB-INF下的lib文件夹以及web.xml文件复制到你刚建的web工程下对应的地方,不要问我对应的地方是那个地方。然后启动tomcat,在浏览器中输入http://localhost:8088/webserviceDemo/services,访问看axis是否安装成功。
第三步、写服务器端代码,在src下建一个service包,在此包中写如下类:
package service;
public class SayHello {
public String getName(String name) {
return "hello" + name;
}
}
第四步、将上面的SayHello源码拷贝到你自己的工程下面的WebRoot下面,重命名为SayHello.jws,注意不要复制源码中package。。这行,这时你可以再浏览器中输入http://localhost:8088/webserviceDemo/SayHello.jws?wsdl,看到wsdl文件
第五步、写客户端端测试代码,在src下建一个client包,在此包中写如下类:
package client;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestClient {
public static void main(String[] args) throws Exception {
// 指出service所在URL
String endpoint = "http://127.0.0.1:8088/webserviceDemo/SayHello.jws";
// 创建一个服务(service)调用(call)
Service service = new Service();
Call call = (Call) service.createCall();// 通过service创建call对象
// 设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint));
// 方法名(getName)与MyService.java方法名保持一致
call.setOperationName("getName");
// Object 数组封装了参数,参数为"ccf",调用getName(String arg)
String ret = (String) call.invoke(new Object[] { "ccf" });
System.out.println(ret);
}
}
最后一步、可以测试了,在tomcat开启的状态下,直接运行上面的客户端代码,运行结果为:
hello ccf
这说明成功了,我想。
申明:我也是第一天接触这个东西,不懂的还很多。如果上述言论有什么不正确或者欠妥当的地方,还请给位不吝指出,谢谢!
这里给出一个链接写得非常好,非常详细,真在学习:
http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html