在本地沙箱上运行cloudfoundry示例应用程序

在本地沙箱上运行cloudfoundry示例应用程序,cloud,cloud-foundry,Cloud,Cloud Foundry,这个问题可能看起来很幼稚,但我刚刚开始使用CloudFoundry。 我安装了eclipse插件并部署了一个示例应用程序。但每次在本地运行应用程序或启动服务器时,它都会被推送到远程云服务器&运行在一个唯一的域上 xxxxx.cfapps.io 在开发过程中,是否有办法在本地主机上运行应用程序?没有连接到远程服务器&每次都推送,就像谷歌应用程序引擎让我们能够。每次推挤都会使开发过程变慢 我尝试在没有internet连接的情况下启动服务器,但它无法启动。给出sockettimedout异常 或者是

这个问题可能看起来很幼稚,但我刚刚开始使用CloudFoundry。 我安装了eclipse插件并部署了一个示例应用程序。但每次在本地运行应用程序或启动服务器时,它都会被推送到远程云服务器&运行在一个唯一的域上

xxxxx.cfapps.io
在开发过程中,是否有办法在本地主机上运行应用程序?没有连接到远程服务器&每次都推送,就像谷歌应用程序引擎让我们能够。每次推挤都会使开发过程变慢

我尝试在没有internet连接的情况下启动服务器,但它无法启动。给出sockettimedout异常


或者是否有其他方法或解决方法在本地开发并最终将应用程序推送到cloud foundry?

部署到cloud foundry的Java应用程序将是常规的.WAR文件(或Spring Boot.JARs),而不会对cloud foundry环境产生任何硬依赖性。因此,您应该能够在本地环境中对这些工件进行迭代和测试

您应该输入的唯一重要问题是,您的应用程序是否依赖于云铸造环境中的绑定服务。在这种情况下,我建议使用SpringCloud连接器()

假设我的应用程序绑定到CloudFoundry环境中的Redis服务。我可以用Spring云注入此服务,如下所示:

@Autowired(required = false)
private RedisTemplate<String,String> _redisTemplate;
@Autowired(必需=false)
私有RedisTemplate\u RedisTemplate;
现在,我的代码可以检查\u redisTemplate是否为null。如果是这样,我在本地运行,没有Redis

或者我确实有一个本地Redis实例要测试。在这种情况下,我同意:

@Autowired
private RedisTemplate<String,String> _redisTemplate;
@Autowired
私有RedisTemplate\u RedisTemplate;

在我的本地环境中,我从环境概要文件local开始。对于Spring概要文件,我声明了RedisTemplate的实现,以使用此概要文件的本地实例。当我部署到Cloud Foundry时,该应用程序将自动以Cloud配置文件启动,并将绑定到Cloud Foundry Redis实例,而不是您的本地实例。

非常感谢您的回答,除了SpringCloudConnector,如果我在本地使用开源库(比如RabbitMQ)进行开发&只需在CloudFoundary上部署应用程序就可以了吗?cloud foundary插件模拟的服务器是tomcat吗?是的,您可以将应用程序配置为针对本地RabbitMQ实例运行,并使用Spring cloud Connector确保它连接到部署时绑定到的RabbitMQ实例。默认的CloudFoundry Java构建包将在Tomcat中部署.WAR文件,因此使用本地Tomcat服务器进行测试应该可以正常工作。