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