- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Myeclpse6.0Axis2返回对象数组(List)的webservice例子
【wayfoon】?
最近公司要求实现一个webservice调用,之前也接触过,但只是看看,没有动手试试,于是现在正式开始学习webservice。
之前参照网上的例子写了一个简单的say hello webservice例子。传递的对象是string,而且只有一个方法;但实际应用中,需要传递一些复制的对象,比如:数组,集合,对象数组。
由于webservice 是通过xml来交互数据的,而且是不分平台的。因此,java 中的List等集合类的哦是通过数组来实现的。学习webservice最好不要从一种语言的角度(java、c#)来对待问题,如果非要看成一中语言,那看成是c语言吧。
?
简单的hello world 例子见 /mlzry0612/articles/185209.html?opt=admin?里面有详细的axis+myeclipse5.5安装部署,图文并茂。不同myeclipse版本 有所不同。
?
在演示例子前,你必须已经安装好了Axis,并且已经知道怎样使用axis,知道通过wsdl生成webservice代码和生成aar发布文件。不会的话,先学习前面的hello 例子。
下面演示一个比较复杂的例子。例子实现:输入一个string 返回得到一个对象数组(输入里面所有的元素对象),注意是对象数组。每个对象对应一个bean实体。
使用axis的好处是可以根据wsdl自动生成大部分代码。因此,采用axis开发webservice 的实现关键在于生成wsdl文件的编写。
生成wsdl文件可以采用两种方式:
第一种:直接新建wsdl再通过wsdl设计器来设计(也就是hello例子里面将的)
如果你对wsdl不是很熟悉,而且,输入或输出的参数都非常复杂,不清楚输入输出的组成结构时,你可 以采用第二种方法。这种方式,可以让你使用你最熟悉的语言来表达你的意思。以java为例,你可以将对个对象放到List里面来表达你要输出的值,这个在 wsdl里面是另外一种表达方式(没有List)。
第二种:选中建立好的web service项目,file - new - other - myeclipse - web services - web service,选中要将webservice添加到哪个项目,勾选create new java bean,next,填web service name, 比如hello其他的会自动生成,如果有包的话选一下包,finish.然后会生成Ihello.java和helloImpl.java两个文件,前面的是接口,后面的是实现.
Ihello.java文件:
package?org.way;
import?java.util.List;
//?Generated?by?MyEclipse?
public?interface?Ihello
{
????public?String?example(String?message);
}
helloImpl.java文件
package?org.way;
import?java.util.ArrayList;
import?java.util.List;
//?Generated?by?MyEclipse
public?class?helloImpl?implements?Ihello
{
????public?String?example(String?message)
????{
????????return?null;
????}
}
例子的目的是要返回一个对象数组,因此我可以将上面文件改成
新的Ihello.java文件:
package?org.way;
import?java.util.List;
//?Generated?by?MyEclipse
public?interface?Ihello
{
????public?ListHelloBean?example(String?message);
}
新的helloImpl.java文件
package?org.way;
import?java.util.ArrayList;
import?java.util.List;
//?Generated?by?MyEclipse
public?class?helloImpl?implements?Ihello
{
????public?ListHelloBean?example(String?message)
????{
????????ListHelloBean?list?=?new?ArrayListHelloBean();
????????return?list;
????}
}
新的两个文件对学习java的来说,非常熟悉了
文档评论(0)