Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用CloudFoundry.com在云中运行Java SE应用程序?_Java_Http_Port_Cloud Foundry - Fatal编程技术网

如何使用CloudFoundry.com在云中运行Java SE应用程序?

如何使用CloudFoundry.com在云中运行Java SE应用程序?,java,http,port,cloud-foundry,Java,Http,Port,Cloud Foundry,我是cloudfoundry.com的新手,正在尝试部署我现有的基于Java SE的应用服务器(一个在端口5050上运行的定制应用程序web服务器)。我的应用程序没有使用任何基于Java SE JDK的应用程序框架 我正在使用eclipse和cloudfoundry插件,并使用“服务器视图”(cloudfoundry.com实例)部署我的应用程序,我可以从控制台看到它正在运行 我的问题是: 我的应用程序的URL是什么?是http://.cloudfoundry.com 如何通过URL访问我部署的

我是cloudfoundry.com的新手,正在尝试部署我现有的基于Java SE的应用服务器(一个在端口5050上运行的定制应用程序web服务器)。我的应用程序没有使用任何基于Java SE JDK的应用程序框架

我正在使用eclipse和cloudfoundry插件,并使用“服务器视图”(cloudfoundry.com实例)部署我的应用程序,我可以从控制台看到它正在运行

我的问题是:

  • 我的应用程序的URL是什么?是
    http://.cloudfoundry.com

  • 如何通过URL访问我部署的应用程序。我试过
    http://.cloudfoundry.com
    http://.cloudfoundry.com:5050
    ,但失败。我可以从论坛中发现,只有80和443个端口为入站tcp连接打开,所以我的下一个问题是如何设置规则,以便将对appname.cloudfoundry:80的HTTP请求转发到我的应用程序的5050端口

  • 如何设置规则,以便
    appname.cloudfoundry:80
    在5050端口转发到我的应用程序?可能吗

  • 我有一些静态页面模板和css文件,它们是我的应用程序生成动态页面并临时存储它们所必需的,可以吗?如果是,如何将静态页面与应用程序一起存储?以及如何创建文件

  • 我知道传出的TCP请求也被限制在80和443端口,如果我需要连接到8080或任何其他端口,出路是什么


  • 以下是一些答案:

  • 将是您选择的任何应用程序(如果可用,即尚未被其他应用程序使用)

  • 您需要修改应用程序,特别是应用程序的http服务器部分,以便它绑定到Cloud Foundry为您分配的端口和主机名。更具体地说,Cloud Foundry为此宣传了两个环境变量:
    VCAP_APP_PORT
    VCAP_APP_HOST
    (您可能不需要担心后者)。一个很好的阅读方法是以tomcat为例。如果您想从Java代码访问env变量(而不是像博客文章那样从shell访问),您需要System.getEnv()

  • 这将自动工作,前提是您执行了2)

  • 目前不支持纯静态文件。但是你可以

  • 让您的http服务器处理它们
  • 如果可以接受,请使用Cloud Foundry上的其他应用程序为其提供服务。正如我的同事安迪解释的那样,这真的很容易使用
  • IIRC,出站连接的唯一限制是端口25,以防止邮件垃圾邮件。所以你应该很好。看


  • 谢谢你的回复!!你回答了我所有的问题。对我来说唯一的问题是使用Sinatra bcoz我有大量Java逻辑,它使用文件系统中的静态模板(html、css、js)生成动态网页,然后存储/缓存它们,直到会话结束,因为我不擅长ruby&Sinatra,我不知道如何将静态内容的java文件系统访问与sinatra项目连接起来。关于4,是否可以使用易失性文件系统进行读写?如果是,a)如何通过eclipse插件或任何其他工具将文件推送到已部署的独立应用程序?b)从我的Java应用程序访问推送文件的路径是什么?c)哪些环境变量/路径可用于从我的Java应用程序创建易失性文件?d)大小有限制吗?好的,因此我建议您坚持使用您的应用程序。您确实可以访问文件系统,但唯一的问题是,正如您所说的,它是不稳定的。这意味着当应用程序重新启动时,它会消失。推荐的做法是查看java.io.tmpdir或使用类似File.createTempFile()的API。当前所有文件(包括日志)的免费帐户限制为2Gb感谢@ebattard我可以在CF上设置我的应用程序服务器。我有另一个应用程序服务器,它使用两个套接字侦听端口号,我的问题是如何用不同的端口号映射单个公共URL?你不能。您需要为此创建两个应用程序,并可能通过某种服务(DB或RabbitMQ)来协调它们的状态。嗯