我可以在Bluemix上运行我的Tomcat应用程序吗?

时间:2015-04-22 20:20:30

标签: tomcat websphere-liberty ibm-cloud

我们有一个在tomcat7上运行的简单应用程序,已经运行了大约一年。我们计划在Bluemix上发挥作用,我们想知道是否有任何信息可以帮助我们完成这项工作。我看到一个post讨论了将应用程序从WebSphere Application Server v7迁移到Liberty配置文件,但我没有看到任何对Tomcat的引用。您可以提供任何文件或样品。

4 个答案:

答案 0 :(得分:11)

烨。您可以使用社区Java buildpack将Tomcat用作Java运行时。

cf push -b https://github.com/cloudfoundry/java-buildpack.git

编辑:

cf push <appname> -b java_buildpack

Doccat for Tomcat buildpack:https://github.com/cloudfoundry/java-buildpack

-b选项之后预安装的buildpack名称或外部URL是开源java Tomcat buildpack。在推送Java应用程序时,如果未指定buildpack名称或url,则将选择默认的Java buildpack。在Bluemix中,缺省buildpack是WebSphere Liberty buildpack。

Doc for Liberty buildpack:https://www.ng.bluemix.net/docs/#starters/liberty/index.html#optionsforpushinglibertyapplications

答案 1 :(得分:6)

是的,您可以在Bluemix上运行您的应用程序,但是,由于配置信息分布在Tomcat上的几个不同的xml文件(服务器,内容和网络),我建议你采取交错的方式移动你的应用。 您首先需要让您的应用程序在WebSphere Application Server V8.5.5 Liberty Profile上运行,然后您可以将服务器包推送到Bluemix。

基本上,您要执行以下操作:

1)使用 WebSphere Application Server迁移工具包 - 竞争性迁移 将Tomcat应用程序和服务器配置迁移到Liberty配置文件。以下文章提供了有关此工具用法的详细信息:

http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/compmig.html

2)在Liberty Profile上测试您的应用

3)将Liberty Server程序包推送到bluemix。我发现下面的文章对于推送服务器包非常有用:

https://developer.ibm.com/bluemix/2015/01/06/modify-liberty-server-xml-configurations-ibm-bluemix/#

答案 2 :(得分:3)

我建议使用以下命令:

cf push <appname> -b java_buildpack

这将使用Bluemix中的内置Java buildpack。这种方法的好处是,您始终可以获得与Bluemix中当前CloudFoundry级别匹配的java buildpack版本。如果你使用外部git主机,它可能会或可能不起作用。

答案 3 :(得分:3)

正如其他人所解释的那样,Bluemix包含java_buildpack buildpack,其中包括Tomcat。要使用它在Bluemix中使用此buildpack创建运行时,请运行以下命令:

cf push <appname> -b java_buildpack -p <apparchive>

您可能想知道:这个buildpack是什么以及它在做什么?

您可以在Bluemix中看到可用的buildpack列表。运行此命令:

cf buildpacks

输出(截至今天)是:

Getting buildpacks...

buildpack                              position   enabled   locked   filename
liberty-for-java                       1          true      false    buildpack_liberty-for-java_v1.18-20150519-1642-yp.zip
sdk-for-nodejs                         2          true      false    buildpack_sdk-for-nodejs_v1.18-20150519-1759-yp.zip
noop-buildpack                         3          true      false    noop-buildpack-20140311-1519.zip
java_buildpack                         4          true      false    java-buildpack-v2.7.1.zip
ruby_buildpack                         5          true      false    ruby_buildpack-cached-v1.3.0.zip
nodejs_buildpack                       6          true      false    nodejs_buildpack-cached-v1.2.0.zip
go_buildpack                           7          true      false    go_buildpack-cached-v1.2.0.zip
python_buildpack                       8          true      false    python_buildpack-cached-v1.2.0.zip
php_buildpack                          9          true      false    php_buildpack-offline-v3.1.0.zip
aspnet5-experimental                   10         true      false    buildpack_aspnet5-experimental_v0.1.5-20150508-1205.zip
liberty-for-java_v1-17-20150501-1729   11         true      false    buildpack_liberty-for-java_v1.17-20150501-1729-yp.zip
sdk-for-nodejs_v1-17-1-20150519-0951   12         true      false    buildpack_sdk-for-nodejs_v1.17.1-20150519-0951-yp.zip

如您所见,java_buildpack buildpack由java-buildpack-v2.7.1.zip实现。这在Java Buildpack v2.7.1中有记录。正如文档所示,buildpack包括Tomcat v8.0.20。

您还可以看到liberty-for-java buildpack在Bluemix中创建了Liberty for Java运行时,由buildpack_liberty-for-java_v1.18-20150519-1642-yp.zip实现,它是buildpack的v1.18。如果您需要以前的版本,可以使用liberty-for-java_v1-17-20150501-1729 buildpack,即buildpack的v1.17。 Options for pushing Liberty applications解释了如何使用buildpack。

您还可以查看Node.js(nodejs_buildpack),PHP(php_buildpack)的构建包等。甚至还有ASP.NET 5的构建包(aspnet5-experimental)。