【发布时间】:2012-03-21 09:20:01
【问题描述】:
在 GAE 中,我有一个将文件存储在 GAE blobstore 服务中的应用程序。数据存储后,还应发送到未部署在 GAE 上的外部 Web Service。我使用Java。
我的第一个想法是使用 http://www.ibm.com/developerworks/xml/library/x-tippass/ 中所述的 JAX-RPC(基于 XML 的 RPC 的 Java API)和 SAAJ(Java 的带附件 API 的 SOAP),但我无法在 GAE 上部署 Axis2 框架因为我得到了套接字异常(GAE 中不允许)。想法是将数据推送到外部 Web 服务。
在我的第二次尝试中,我想从 GAE 中提取数据,这意味着通过外部 Web 服务直接访问 Blobstore 中的文件。在 GAE 的管理控制台中,可以下载 blob。因此,我认为,我可以通过将 blob 的密钥传递给外部 Web 服务以使用 java.net.URL 来获取我的文件,来对我的外部 Web 服务执行相同的操作,此处类似描述:http://code.google.com/intl/de-DE/appengine/docs/java/urlfetch/overview.html。此链接如下所示:
String blobFileUrl = "https://appengine.google.com/blobstore/download?app_id=s~gae_app&key=" + gaeBlobKey;
但是,它不起作用,因为需要对 webservice/www-user 进行身份验证和授权才能访问该文件。据我所知,Google 不提供 Java API 来从外部 Web 服务登录 GAE。
是否可以使用 Java 使用未部署在 GAE 上的外部 Web 服务访问 GAE 的 blob/数据?如果有,怎么可能?
【问题讨论】:
标签: java web-services google-app-engine blobstore