第一种方式见:
http://playframework.wordpress.com/2010/08/15/web-services-using-play/
直接使用play!的WS工具类操作,对少量和简单接口来说非常方便。
现在主要分享一下第二种方式:在play!中使用 Apache CXF来使用webservice,其实你也可以选其它的看你自己的意愿了。
首先去
http://cxf.apache.org/download.html下载apache cxf,然后把bin加到环境变量中备用。
然后你就可以看看官方的这个文档了解一下wsdl2java工具的使用
http://cxf.apache.org/docs/wsdl-to-java.html
wsdl2java -d 输出目录 -p 包名 -fe jaxws21 wsdl文件(这里可以是远程wsdl地址也可以是本地文件)
我在用这个工具生成时用远程地址时,由于报
WSDLToJava Error: Thrown by JAXB : undefined element declaration 's:schema'
更多可以看这里:
http://hi.baidu.com/waltertan/blog/item/feee9f19b07b1d76dbb4bd4b.html 把远程的wsdl另存为,然后删除其中的s:schema,使用wsdl2java的时候使用本地这个wsdl生成java文件也是一样的。但是要注意一下wsdl文件中soap:address的配置是否正确,不然会悲剧的,我就悲剧过了,请求时总是提示不可连接超时。
说了这么多还没和超爱的play!扯上关系,接着来,把上一步生成的java文件复制到play!工程源码中,这样就可以在play! controllers中直接使用便利的webservice了。
public static void getCategory() {
List<String> categories = (List<String>) Cache.get("categories");
if (categories == null) {
Logger.info("getCategory远程服务获取数据");
WsDataEngineForWebSite ws = new WsDataEngineForWebSite();
WsDataEngineForWebSiteSoap wsp = ws.getWsDataEngineForWebSiteSoap12();
GetCategoryResult categoryResult = wsp.getCategory();
Element categoryElement = (Element) categoryResult.getAny();
categories = new ArrayList<String>();
for (Node event : XPath.selectNodes("//NewDataSet//Table1", categoryElement)) {
String sort = XPath.selectText("sort", event);
String name = XPath.selectText("name", event);
String ename = XPath.selectText("ename", event);
categories.add(StringUtils.trimToEmpty(sort) + "|" + StringUtils.trimToEmpty(name) + "|" + StringUtils.trimToEmpty(ename));
}
Cache.set("categories", categories, "2min");
}
render(categories);
}
这里同时感谢下play!提供的XPath工具类,真是很方便,如果是用scala来做,解析起来更方便了,只是俺不熟不多扯。当然有工具可以将xml数据片段直接转为java object这样操作起来更方便,但没找到更简洁的转换办法,如果有告诉我一下,谢谢!
最后再说个技巧,如果频繁的用wsdl2java生成java文件复制也很麻烦,在eclipse中有很便捷的办法,见系列套图如下:
点run -> external tools -> External Tools Configurations将会弹出
你也在图上看到了怎么配置了,名字随你爱好,关键就是参数配置而已,其它的一目了然,建议把要生成的wsdl文件复制到工程根目录下,方便管理。
下图的配置就是说生成后刷新哪个目录,使生成的文件加载到工程中来,不用自己再去刷新一次工程目录,省事...
看看除了生成java代码是使用了apache cxf,运行时好像并不依赖它们,真是更省事!!!有木有!!!!以后要重新用wsdl2java生成java代码,只需手指一点这个扩展命令就自动生成了,方便吧!
---------------------------华丽分割线-------------------------------------
文章就止结束,如果你有更好的方法愿意分享就联系我吧!!923933533(都知道这是什么号吧) liujiuwu@gmail.com
- 大小: 99.7 KB
- 大小: 80.3 KB
分享到:
相关推荐
在Web服务环境中,Discovery模块帮助客户端找到服务的位置,通过UPnP(Universal Plug and Play)或UDDI(Universal Description, Discovery, and Integration)协议。它提供了一系列API来搜索、发布和解析服务信息...
标题中的"delphi + webservice 安卓源码.rar"表明这是一个使用Delphi编程语言开发的Android应用程序,它集成了Web服务(WebService)技术。Delphi是Embarcadero公司开发的一种集成开发环境(IDE),常用于创建桌面和...
在Android开发中,开发者可能需要使用WebService与服务器进行数据交换。 4. UPnP:Universal Plug and Play(UPnP)是一种网络协议,允许设备自动发现并互相连接,主要用于智能家居、多媒体设备等场景。在Android上...
在Android开发中,网站交互是实现...通过研究这个源码,你可以学习如何使用JSON和XML解析数据,如何调用Web Service获取信息,以及如何在Android环境中实现这些功能。同时,也可以探索UPnP在特定场景下的应用可能性。
UPnP(Universal Plug and Play)是一种网络协议,允许设备自动发现并与其他设备通信,通常用于家庭自动化和多媒体设备的网络控制。在安卓设备上,UPnP可以实现设备间的媒体共享、远程控制等功能。例如,一个UPnP...
在本项目中,开发者可能使用SOAP(Simple Object Access Protocol)作为传输协议,因为它是与语言、平台和硬件无关的,适合跨平台通信。SOAP消息通常基于HTTP协议传输,确保了服务的广泛可用性。 2. ksoap2:ksoap2...
该压缩包文件主要展示了如何在安卓环境中实现与网站的交互,获取并解析JSON、XML数据,以及可能涉及的Web服务(Webservice)和通用即插即用(UPnP)技术。下面将对这些知识点进行详细解释。 首先,JSON(JavaScript...
【标题】中的“安卓网站交互JSONxmlWebserviceUPnP相关-使用fastjson解析实体嵌套只要一行代码就可以解析负责的json嵌套”涉及到几个关键概念,让我们逐一详解: 1. **JSON**: JSON(JavaScript Object Notation)...
wechat-微信play1.2.x模块 ...httpclient部分采用play封装的webservice部分play.lib.WS log采用play自带的play.logger 如果您在使用过程中有什么问题,请直接发邮件到zhangpdg#gmail.com(#转@) 参考例子: 感谢wechat4j
标题中的“安卓网站交互JSONxmlWebserviceUPnP相关”涵盖了几个关键的Android开发技术领域,主要包括JSON、XML、Web服务(Webservice)以及通用即插即用(UPnP)。让我们逐一深入探讨这些知识点: 1. **JSON...
UPnP(Universal Plug and Play)是一种允许设备自动发现和互相通信的协议,常用于家庭网络中的智能设备。在Android中,可以使用UPnP库实现设备的查找、控制和事件通知等功能。 在Android应用中,与服务器交互的另...
5. **UPnP (Universal Plug and Play)**: UPnP是一种网络协议,允许设备自动发现和连接网络,主要用于家庭自动化和媒体共享。在Android应用中,UPnP可用于控制智能设备,如电视、音响等,实现设备间的互动。 6. **...
本压缩包中的资源主要关注如何使用JSON(JavaScript Object Notation)进行数据交换,这是目前广泛采用的一种轻量级数据交换格式。JSON易于人阅读和编写,同时也易于机器解析和生成,特别适合于Web服务和移动应用...
学习这些知识点,开发者可以了解如何在安卓应用中安全地与服务器交互,使用JSON或XML进行数据交换,通过WebService调用远程服务,利用UPnP技术控制网络设备,并通过SSL/TLS保护通信的安全性。同时,理解X.509证书...
在Android中,使用如SAX、DOM或Pull解析器来解析XML响应。尽管JSON现在更流行,但在某些场景下,XML仍然是服务器和客户端之间交互的首选。 3. WebService:通常指的是基于HTTP协议的服务,允许不同系统间交换数据。...
在安卓开发中,网站交互是不可或缺的一部分,JSON和XML作为数据交换格式,Webservice作为服务接口,UPnP作为设备间的网络通信协议,都是构建高效、跨平台应用的关键技术。本资料"安卓网站交互JSONxmlWebserviceUPnP...
在安卓中,通过SOAP或RESTful等接口调用Webservice,可以实现远程数据访问,如获取选课系统的课程列表、处理选课请求等。开发者需要熟悉如何创建和消费Webservice,以实现安卓应用与服务器的通信。 UPnP(Universal...
3. 字符串中存在某些词:`wordlist = ["scala", "akka", "playframework", "sbt", "typesafe"]; tweet = "This is an example tweet talking about scala and sbt."; print(map(lambda x: x in tweet.split(), ...
14. **发布和签名**:最后,开发者需要了解如何使用Flash Builder 4.5将应用程序打包成APK,并使用正确的密钥进行签名,以便在Google Play或其他市场分发。 这个源代码包可能包含了上述所有知识的实例,通过学习和...
在Android开发中,网站交互是不可或缺的一部分,常常涉及到数据交换格式如JSON和XML,Web服务如Webservice,以及设备间的网络通信协议UPnP(Universal Plug and Play)。本压缩包文件"安卓网站交互...