jbuilderX的webservice入门(服务器端和客户端)多图
导读:
本文结合实际制作一个web service的服务器端和多种方式的客户端的测试。服务器端利用jbuilderX结合tomcat来发布,客户端用java方式和php方式,还利用xmlspy这个工具软件。
最后提供这个源代码下载。
有兴趣的同学可以这样联系我:MSN:j2me@mail.china.com
1.服务器端:
2.客户端:
1.JAVA方式
2.PHP方式
3.Xmlspy方式
3.原代码下载:
目前无空间存放,有兴趣可以同我联系:j2me@mail.china.com
web service服务器端,这里我们使用jbuilerX来做。
步骤:
1.WebServiceTest的project
2.开始一个新的webservice,点击webservices designer
中间我们只选module type 为server端的,客户端的我们另外建项目,
copy admin/console 是为之后我们发布时查看之用,
中间须建一个web module,我们新建一个felio的,一路next下来,最后成这样:
next之后会到这里了
3.这时我们要先为web services 建一个发布的类,这个就是我们要发布的内容了。
我们新建一个class:Receive
值得注意的是:必须为这个类的成员变量get/set的方法(bean),这样发布出去的参数才能被客户端接收到, 在这里我们设置的接收方法是:reveiveInfo
参数为int 的id,String类型的 name,当然了其他类型也是可以的,如对象类型,MAP类,等等。
最后就是这样:
4.好了,我们把上面的reveiveInfo 方法让能发布出去,回到刚才的web services designer
把我们刚才的 class 指定到 class or interface 里去,
这时能看到所有的方法了,这样基本上就可以搞定了
编译这个项目,tomcat 启动,管理界面:
view 链接里面就是web services发布的地址了:http://localhost:8080/felio/services/Receive?wsdl
soap monitor是一个applet的监视器,不过要设置一下,不过每次设置一下之后编译都会被他覆盖掉,没有好的办法来测试了,最后我们用xml spy 2006来测试了。
客户端测试:
1. Java方式:
可以新建一个工程来测试,但方便起见,我们就在刚才的工程下:webservices ->web service configuration
选client only
之后我们在design界面下import from url来引入web service,
我们可以看到开始定义的方法都能看的到了
左边他会生成一个generated 目录下一些类:
之后要测试的话,我们要用他自动生成的ReceiveServiceTestCase.java这个类了
在里面加入main方法:
public static void main(String[] args) {
ReceiveServiceTestCase t= new ReceiveServiceTestCase("TEST");
try {
t.test5ReceiveReveiveInfo(); //里面的方法名具体看客户端生成的情况了
}
catch (Exception ex) {
}
}
之后在上面的test5ReceiveReveiveInfo()方法里加入我们的参数:
//value = binding.reveiveInfo(0, new java.lang.String());
这一行改成有参数的:
value = binding.reveiveInfo(99, "我是felio");
好了,为这个类调试一下了:
make一下,我们可以看到在tomcat下,会出现:
看来成功了.YEAH。。。。。。。
2. Php 方式
我们需要一个成熟的web service解析类库,nusoap,听说php5已经支持web service了,不过没用过,这里我们用nusoap来试试了,sourceforge上的版本为0.7.1,地址为:http://sourceforge.net/projects/nusoap/
代码如下:
<?
require_once('./nusoap/lib/nusoap.php');
$client = new soapclient("http://localhost:8080/felio/services/Receive?wsdl", true);
$err = $client->getError();
if ($err) {
echo '操作失败' . $err ;
}
//reveiveInfo 为web service接收的方法名
//传递的参数放到一个数组里面来,对象也是一样
$result = $client->call('reveiveInfo',array("id"=>123456,"name"=>"我是felio"));
// Check for a fault
if ($client->fault) {
echo "失败";
}
else {
// Check for errors
$err = $client->getError();
if ($err)
echo "失败";
else {
// Display the result
echo '返回成功';
print_r ($result);
}
}
?>
可以看到测试成功了:
PS:我在nusoap包里要输出的XML打印了出来:
echo $soapmsg;
如果实际用,大家可以把他关掉:
XMLSPY里很方便的SOAP工具,太棒了,他里面还可以帮你分析调用的方法名,有用的工具还不少,调试下来就很爽了
输入地址:
马上可以看到,他已经帮我们生成客户端了,太方便了:
之后发送请求给服务器:
成功~~~
源代码下载:
目前无空间存放,有兴趣可以同我联系:j2me@mail.china.com