jbuilderX的webservice入门(服务器端和客户端)多图
jbuilderX的webservice入门(服务器端和客户端)多图
?
导读: 本文结合实际制作一个web service的服务器端和多种方式的客户端的测试。服务器端利用jbuilderX结合tomcat来发布,客户端用java方式和php方式,还利用xmlspy这个工具软件。
1.服务器端:
?
2.客户端: 1.JAVA方式 2.PHP方式 3.Xmlspy方式
?
?
?
?
?
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; 如果实际用,大家可以把他关掉: 3. Xmlspy方式
?
XMLSPY里很方便的SOAP工具,太棒了,他里面还可以帮你分析调用的方法名,有用的工具还不少,调试下来就很爽了 输入地址: 马上可以看到,他已经帮我们生成客户端了,太方便了: 之后发送请求给服务器:
成功~~~
?
源代码下载:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |