【问题标题】:Is it possible to run a Tomcat server and a few web applications on an Android device? (ie. a tablet)是否可以在 Android 设备上运行 Tomcat 服务器和一些 Web 应用程序? (即平板电脑)
【发布时间】:2011-01-11 22:59:47
【问题描述】:

标题几乎说明了一切,但让我提供更多细节。

我们正在努力完成的是构建一个移动服务器平台。我们已经有一个用 Java 编写的服务器平台,它在 Tomcat 服务器上运行。它为客户端提供 Web 接口和 Web 服务接口。

与大多数网络应用程序一样,该系统是为在固定位置执行而构建的。

现在,我们需要能够将 Web 服务和服务器软件带到远程、未连接的位置。

我们的想法是,我们将使用启用了 Wifi 的 Android 平板电脑作为设备本地客户端的服务器。服务器将在平板电脑上运行以服务本地客户端,然后一旦平板电脑回到 3G/4G/EDGE 或任何网络的范围内,平板电脑会将收集的数据上传到主服务器。

可以服务的客户数量相对较少 - 一次不超过 20 个左右。每个客户端的流量会很小,在

如果我们想在 Android 上设置这些东西,首先,是否有可能不生根设备?其次,如果可能的话,它会以任何不错的性能运行吗?

提前致谢!

【问题讨论】:

  • 使用上网本似乎要简单得多,也许使用 3G 卡。
  • 你能解释一下你为什么最终得到这个解决方案的思考过程吗?这是因为您已经开发了一系列基于 SOAP 的 Web 应用程序。
  • 无需手动破解您无法做到的代码。实际上,您有任何版本的 tomcat 吗?

标签: java android web-services


【解决方案1】:

您可以尝试使用I-Jetty 在 Android 上运行 Java Web 应用程序。你不需要做任何生根,但我找不到任何性能信息。您可能只需要进行自己的基准测试,以确定它是否适合您的需求。

【讨论】:

  • 是的,我试过iJetty,我可以让它在Android平板电脑上运行没问题。麻烦在于使用我们现有的 EAR 并对其进行部署。它根本不可行。我无法使用 DX 成功转换文件以使它们成为 iJetty 要求的可下载 Web 应用程序。我遇到了 dx 的内存不足错误,因为它消耗了我扔给它的所有东西,最多 4 GB。这是其他错误的补充。
  • 并非所有 Java 代码/库都与 Android 使用的 Dalvik VM 兼容。可能无法在 Android 上运行 EAR 中的部分内容。
  • 另外,jetty 不能运行 JSP
  • @AndreaScarafoni Jetty 绝对可以为 JSP 服务:eclipse.org/jetty/documentation/current/configuring-jsp.html
【解决方案2】:

答案似乎是:

  • 理论上是的,
  • 实际上这是个坏主意,您需要做一些工作才能实现。

例如,阅读this Google Groups thread。

其次,如果可能的话,它会以任何不错的性能运行吗?

无法确定,但我有疑问。如果您正在寻找性能(和简单性),您应该考虑使用普通 PC,IMO。

【讨论】:

  • 另外,如果您正在考虑使用一些现有的基于 java 的应用程序,您很可能会发现 101 个依赖项根本不适用于 android jvm,而我在做其他事情时遇到了这些依赖项.
  • 我已经在 Google Groups 上看到过这个帖子。似乎没有人知道该怎么做,除了这很难做到。
  • @Brian Teeter - 我阅读帖子的方式,人们认为他们知道需要做什么,但实际上并没有尝试过,因为可行解决方案被认为很小。当然,你可以证明他们是错的。
【解决方案3】:

在 android 上运行 Java Servlet 的最佳解决方案是 I-Jetty,Console 两者都是免费的,open source。

有specific servers from Ice Cold Apps 以优惠价格,您可以使用Ice Cold Apps Servers Ultimate 用于所有其他支持服务,例如 Caddy、CVS、DC Hub、DHCP、UPnP、DNS、DDNS、电驴、电子邮件 (POP3 / SMTP)、FTP代理、FTP、FTPS、FTPES、Flash 策略、Git、Gopher、HTTP Snoop、ICAP、IRC Bot、IRC、ISCSI、Icecast、Lighttpd、LPD、负载均衡器、MQTT、Memcached、MongoDB、MySQL、NFS、Node.js、 NTP, NZB Client, Napster, Nginx, PHP, PXE, Port Forwarder, RTMP, Remote Control, Rsync, SIP, SMB/CIFS, SMPP, SMS, Socks, SFTP, SSH, Server Monitor, Styx, Syslog, TFTP, Telnet,时间、Torrent 客户端、Torrent 跟踪器、触发器、USB/IP、Unison、UPnP 端口映射器、VNC、VPN、Wake On Lan、Web、WebDAV、WebSocket、X11 和/或 XMPP 服务器!。

另一个选项是让您在 Android 旁边安装和使用 Debian 及其相关应用程序/软件包的方法。这不是完整的 Debian 操作系统 - 它是一个兼容层,允许您运行 Debian 应用程序。 您不需要 root 设备,它可以与任何库存 ROM 一起正常工作。 您将需要 900 Mb 的免费内部存储空间。此应用程序无法安装到 SD 卡。 强烈建议使用鼠标或触控笔。 这不是官方的 Debian.org 版本。 在此应用程序之后,定期卸载会完全清理。 这是可扩展的,您将能够像 Tomcat 一样将自己的应用程序/包安装到其中。

如果您使用的是 Android 6.X 或更高版本,请查看GNURoot Debian 在 GNURoot Debian 中,您可以创建根文件系统、启动或删除它。

如果您使用的是 Android 5.X,请查看Debian noroot,它将安装 Debian Jessie。 您可以将它与XServer XSDL 应用程序配对以运行图形化 Debian 应用程序。

【讨论】:

  • 所有链接都已关闭:(
【解决方案4】:

如果我的问题陈述是在android中安装tomcat,以下是我可能的解决方案。

1_调查tomcat服务器与底层操作系统的可能交互。

就我而言,从他们的下载目录来看,很明显他们的交互很少,我可以从任何能够运行 jvm 的机器上运行 catalina.jar。

2_dalvik vm 会支持 Tomcat 吗?

很可能不是。但我会先在功能更强大的设备(比如我的笔记本电脑)上安装 android,然后尝试在 vm 中运行 tomcat。我的猜测是,这可能会打开一个潘多拉魔盒。

3_ 研究虚拟化?

这可能是一个不错的选择。但在平板电脑等资源有限的设备中,这种解决方案看起来很疯狂。

但后来我不明白是什么驱使您采用这种解决方案?您能否不使用 sqllite 模块存储信息或在 REST 中实现您的 Web 服务,并且可能拥有像 Tomcat Lite 或 Getty 这样的服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    相关资源
    最近更新 更多