【问题标题】:AFNetworking with Java and GlassfishAFNetworking 与 Java 和 Glassfish
【发布时间】:2013-12-31 03:17:51
【问题描述】:

这可能是一个长期的问题,但我还没有找到任何关于这种特定技术组合的具体教程或文章。

我的意图是在使用 AFNetworking 的 iOS 设备上使用我自己的 API(来自部署在 GlassFish 服务器上的 Java Bean)。

问题是,我不太了解服务器和iOS设备的联动方式。 iOS 代码如何访问 GlassFish 网络服务(例如)?

免责声明:我在这个特定领域(即 Web 服务及其安全性)没有经验,因此非常欢迎任何新手对我的问题进行调整。

【问题讨论】:

    标签: java ios json glassfish-4 afnetworking-2


    【解决方案1】:

    您使用 Java 和 GlassFish 的事实真的无关紧要 - 这两种技术能够发布各种服务。相反,请查看您的 Web 服务正在使用的协议。所以你需要问:

    • 传输是 HTTP 吗? (很可能)
    • 负载是 XML 还是 JSON?
    • 在 XML 的情况下,是否有一个额外的信封来包装实际数据?像肥皂请求之类的东西?
    • Web 服务是否受到保护?遵守什么安全规范?认证? (推荐用于手机)。

    顺便说一句,我建议您不要公开 Java Bean 本身 - 在领域驱动开发术语中,这是您的核心模型。公开你的核心模型被称为泄露你的胆量 - 如果你改变它,那么你服务的所有订阅者也需要改变。

    相反,您应该公开带有输入/输出负载的特定于用例的服务合同。然后,您可以将其内容映射到您的核心模型上。 (如果要映射很多,您可以使用像 Dozer 这样的框架来为您完成)。

    如果您自己做出技术决策,那么您可以选择大量的技术。我个人的选择是:

    以下任一:

    • Spring Web 服务 (XML)
    • Spring MVC (JSON)

    受保护:

    • Spring Security OAuth 提供者 - (AFAIK,与 Google 的提供者相比有点复杂,但有很多关于与上述两者集成的教程)。

    使用这些技术首次更新定位:

    • Java 是一种语言(显然 ;))
    • GlassFish 是一个企业应用服务器 - 这意味着它能够托管企业 Java Bean、访问 LDAP 目录、提供安全性等。
    • GlassFish 的上述功能,您可能不需要。您所需要的只是 servlet 引擎——它提供了一种通过 HTTP 接口托管线程 Java 代码的方法。

    您需要选择数据的序列化方式。 JSON 更受欢迎。 (尽管 John Blanco 出色的 RaptureXML 库使使用 XML 变得非常容易)。

    因此,我建议您按照教程将 Spring MVC 应用程序部署到 glassfish。

    这里有一个关于如何获取 Spring MVC 的教程:http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/

    先确保在没有安全性的情况下运行它,然后再继续进行该部分 - 否则会更复杂

    【讨论】:

    • 看到所有这些可供选择的技术真是令人不知所措。另外,是的:网络服务应该是安全的。你的 iOS 网络框架偏好如何(虽然我知道它与服务器端技术无关)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多