阿里云建站论坛网站,武安市城乡建设局网站,wordpress设置邮箱设置,邵阳市住房和城乡建设局网站在过去的几年中#xff0c;我越来越听到有关“云”服务的信息。 最初#xff0c;我并不是很想尝试一下。 但是几个月后#xff08;一年#xff1f;#xff09;#xff0c;我决定看看这是怎么回事。 我从事Java EE开发已经超过7年了#xff0c;所以我决定看看将Java EE应… 在过去的几年中我越来越听到有关“云”服务的信息。 最初我并不是很想尝试一下。 但是几个月后一年我决定看看这是怎么回事。 我从事Java EE开发已经超过7年了所以我决定看看将Java EE应用程序部署到云中需要什么。 我着手寻找文档和其他常见的博客文章等。 那时无论我想试用哪种云服务都需要我提供我的信用卡详细信息甚至还可以试用试用应用程序。 我不太想提供我的信用卡详细信息只是为了尝试我的一些应用程序。 因此尽管我一直在阅读有关其他开发人员在将其应用程序部署到云上的工作但我还是有点放弃在云上试用我的应用程序的想法。 大约在同一时间我遇到了一篇详尽的文章内容涉及一位开发人员如何在Google App Engine – Part1 Part2上设置涉及Weld和JSF的应用程序。 该博客写得很好并解释了在云服务上启动并运行Java EE应用程序所需的条件。 但是这些文章中的重要信息是拥有按Java EE标准可移植实现的应用程序的用户必须更改许多应用程序部分才能使其在云上运行。 这是因为云服务提供商不支持许多Java EE技术。 这看起来对我没有吸引力。 毕竟这样做会给我带来什么好处。 因此在那时作为Java EE开发人员我对在云上部署应用程序的实验不太感兴趣。 输入OpenShift 但是本月关于能够将JBoss AS7 Java EE应用程序部署到云的OpenShift公告引起了我的注意。 顺便说一句我确实在RedHat工作并且是JBoss AS7团队的一员但是我没有一直在关注OpenShift团队的工作所以这一宣布令人惊喜 因此我决定尝试一下。 阅读项目站点上的一些文档之后我发现OpenShift提供了两种不同的服务。 一个是“ OpenShift Express”另一个是“ OpenShift Flex”。 OpenShift Express是免费使用的对我来说是个好消息而OpenShift Flex需要您的Amazon EC2凭证您需要为EC2的使用付费但是目前正在进行免费试用。 我决定尝试一下OpenShift Express因为它是免费的并且适合我目前的需要只需尝试快速简单的Java EE应用程序部署以及对该应用程序的访问即可。 因此这就是我能够将Java EE应用程序部署到OpenShift Express的过程该应用程序使用Java EE6 Web配置文件中可用的技术并且可以在本地AS7实例上很好地部署。 您可能已经猜到我不是OpenShift或一般的云服务专家因此本文没有任何高级技术细节但包含更多有关将Java EE应用程序部署到OpenShift Express的方法。 。 因此让我们开始吧。 注册 第一步是在这里注册为自己创建一个帐户。 注册仅需要一个有效的电子邮件地址您的帐户详细信息将被发送到该电子邮件地址。 注册后您会收到一封邮件其中包含用于激活您的帐户的链接并将带您进入登录屏幕。 使用您以前注册的电子邮件ID和密码登录。 获得对OpenShift Express的访问权限 因此让我们进入OpenShift Express页面 。 在该页面上您会注意到左侧的“快速访问访问权限”按钮。 单击它可以访问“快速”。 我们会通过邮件通知您立即您注册的电子邮件ID。 检查包含快速入门指南链接的邮件以帮助您开始使用OpenShift Express。 安装客户端工具 快速入门包含指导您开始安装过程的说明。 第一步包括在系统上安装一些客户端工具以帮助您与OpenShift进行交互。 请按照这些说明来安装客户端工具由于在该指南中已对此进行了很好的说明因此在此不再赘述。 建立网域 现在有了客户端工具后就可以在OpenShift云上设置“域”了。 设置域将创建可用于您的应用程序的唯一域名。 域名将是URL的一部分您将使用该域名来访问该应用程序并将其发布给用户以进行访问。 创建域的命令很简单 rhc-create-domain -l email-id-you-registered-with -n domain-name-of-your-choice 运行该命令将询问您用于注册的密码。 输入该密码然后完成命令几秒钟。 “ rhc-create-domain”是您先前安装的客户端工具的一部分。 如果尚未安装这些工具那么您将无法使用这些命令因此请不要错过这一步 “ rhc-create-domain”接受更多可选参数。 要查看可接受的参数列表可以运行以下命令 rhc-create-domain --help 创建一个jbossas-7.0应用程序 成功创建域后下一步就是创建“应用程序”。 当前OpenShift Express支持不同的“类型”的应用程序每个应用程序都由Git 版本控制系统支持。 在撰写本文时支持的应用程序类型为jbossas-7.0perl-5.10rack-1.1wsgi-3.2和php-5.3。 我对部署Java EE应用程序感兴趣因此我将创建一个“ jbossas-7.0”应用程序。 这种类型的应用程序在OpenShift云中为您提供了JBoss AS 7.0.0实例您可以在其中部署应用程序。 现在让我们创建一个类型为jbossas-7.0的应用程序。 请注意术语“应用程序”可能有点令人困惑至少我发现它有点令人困惑因为此时您要做的只是设置JBoss AS7服务器。 创建应用程序的命令是rhc-create-app。 rhc-create-app接受多个选项。 有关选项的完整列表请运行 rhc-create-app --help 要创建jbossas-7.0应用程序我们将运行以下命令 rhc-create-app -a application-name -l email-id-you-used-to-register -t jbossas-7.0 -r path-on-local-filesystem-for-the-repository 运行该命令将询问您用于注册的密码。 输入该密码然后完成命令几秒钟。 -a选项可让您指定应用程序的名称。 该名称将成为您用来访问应用程序的URL的一部分。 如果您的应用程序名称为“ foo”先前创建的域名为“ bar”则用于访问您的应用程序的URL为http://foo-bar.rhcloud.com/。 该命令中的-t选项指定应用程序类型。 在我们的案例中我们对jbossas-7.0感兴趣 另一个重要的选项是-r选项您将使用它来指向本地文件系统上的文件夹OpenShift将在其中存储与应用程序相关的所有数据。 该数据的一部分将是git repo版本控制系统的本地副本。 我们稍后将在此博客中更详细地介绍这一点。 访问您的服务器URL 因此一旦您运行命令并成功完成命令它将打印出该应用程序可用的URL。 您可以立即使用该URL访问该应用程序。 访问该URL时您会注意到一个欢迎页面这表明该应用程序已成功安装并且可以访问。 对我来说新创建的应用程序的URL是http://jaikiran-jbossas.rhcloud.com/ 。 因此在这一点上我们先创建了一个域然后创建了一个应用程序并确保世界可以访问该域。 简而言之您的云服务器已启动并正在运行现在您可以将Java EE应用程序部署到该服务器上。 创建和部署Java EE应用程序 现在让我们转到创建和部署Java EE应用程序的步骤。 我没有任何特定的应用程序但是想部署一个涉及访问数据库的应用程序。 我决定使用JBoss AS7随附的一种快速入门应用程序而不是创建一个全新的应用程序。 JBoss AS7的快速入门应用程序可在此处下载。 下载快速入门档案后将其解压缩到您选择的位置。 构建快速入门示例将需要在系统上安装Maven构建工具。 有关快速启动应用程序以及如何构建它们的详细信息请参见此处 。 那些有兴趣亲自尝试的人可能会想看看该指南。 从这些快速入门中我选择了“ kitchensink”应用程序。 kitchensink应用程序使用Java持久性APIJPA来实现持久性并且默认情况下使用JBoss AS7默认提供的javajboss / datasources / ExampleDS。 ExampleDS使用H2作为数据库这是persistence.xml的样子 ?xml version1.0 encodingUTF-8? persistence version2.0 xmlnshttp://java.sun.com/xml/ns/persistence xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd persistence-unit nameprimary !-- If you are running in a production environment, add a managed data source, the example data source is just for proofs of concept! -- jta-data-sourcejava:jboss/datasources/ExampleDS/jta-data-source properties !-- Properties for Hibernate -- property namehibernate.hbm2ddl.auto valuecreate-drop / property namehibernate.show_sql valuefalse / /properties /persistence-unit /persistence 现在这足以说明我如何部署应用程序以及OpenShift Express中可用的数据库支持。 构建应用程序后 可部署的战争名为jboss-as-kitchensink.war可在我的本地文件系统上使用。 下一步是将其部署到我们已在OpenShift Express云中设置的JBoss AS7服务器上。 让我们看看如何完成。 将应用程序部署到OpenShift Express 记住在使用rhc-create-app命令创建“应用程序”时我们使用-r选项指向本地文件系统上的文件夹来创建应用程序存储库的本地副本。 那就是现在将用于部署我们的应用程序的地方。 就我而言我使用/ home / jpai / OpenShift / myapps / demo作为存储库位置。 该文件夹的外观如下 demo | |--- deployments | |--- pom.xml | |--- README | |--- src 将应用程序部署到OpenShift Express的方法不止一种。 一种方法是编写代码然后在本地存储库的src文件夹中提交源代码然后将更改推送到远程git存储库。 然后这将触发您的项目在远程存储库上的Maven构建。 有关此方法的更多详细信息 请参见此博客 。 在我们的案例中我们将重点介绍如何将已构建的Java EE应用程序部署到您的OpenShift Express云服务器。 在上一步中我们构建了jboss-as-kitchensink.war。 现在将该战争文件复制到本地git存储库的“ deployments”子文件夹中。 在这种情况下它是/ home / jpai / OpenShift / myapps / demo / deployments cp /home/jpai/jboss-as-quickstarts-7.0.0.Final/kitchensink/target/jboss-as-kitchensink.war /home/jpai/OpenShift/myapps/demo/deployments 将其复制到此处后下一步是使用git commit命令“提交”此更改 jpaijpai-laptop:demo$ git add deployments/jboss-as-kitchensink.war jpaijpai-laptop:demo$ git commit -m Deploy kitchensink application deployments/jboss-as-kitchensink.war [master 1637c21] Deploy kitchensink application 1 files changed, 0 insertions(), 0 deletions(-) create mode 100644 deployments/jboss-as-kitchensink.war 因此此时您的厨房应用程序已提交到本地git repo。 接下来我们应该将此提交“推送”到远程git repo jpaijpai-laptop:openshift$ git push origin master Counting objects: 6, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 393.71 KiB, done. Total 4 (delta 1), reused 0 (delta 0) remote: Stopping application... remote: done remote: Found .openshift/config/standalone.xml... copying to ... .... .... .... remote: Starting application...done To ssh://6a7ff43a6c2246999de28219a5aaa4aejaikiran-jbossas.rhcloud.com/~/git/jaikiran.git/ 6e57976..1637c21 master - master 从上面的输出中整理了一些日志。 因此通过“推送”我们现在将我们的应用程序部署到了远程OpenShift Express JBoss AS7服务器。 jboss-as-kitchensink.war将部署在“ jboss-as-kitchensink” Web应用程序上下文中。 因此用于访问该应用程序的URL为http://jaikiran-jbossas.rhcloud.com/jboss-as-kitchensink 。 继续并访问该URL。 该应用程序没有任何花哨的功能–它允许您添加用户名电子邮件和电话号码然后将其存储在数据库中。 就像我之前提到的kitchensink应用程序使用ExampleDS数据源该数据源由H2数据库支持。 因此所有数据都将远程存储在H2数据库中。 使用OpenShift Express中可用的MySQL数据库 创建jbossas-7.0应用程序类型时OpenShift Express会为您设置MySQL数据源模板 。 数据库的详细信息可以在path-to-local-repo /。openshift / config / standalone.xml中找到 subsystem xmlnsurn:jboss:domain:datasources:1.0 datasources datasource jndi-namejava:jboss/datasources/ExampleDS enabledtrue use-java-contexttrue pool-nameH2DS connection-urljdbc:h2:${jboss.server.data.dir}/test;DB_CLOSE_DELAY-1/connection-url driverh2/driver pool/pool security user-namesa/user-name passwordsa/password /security validation/validation timeout/timeout statement/statement /datasource datasource jndi-namejava:jboss/datasources/MysqlDS enabledfalse use-java-contexttrue pool-nameMysqlDS connection-urljdbc:mysql://127.1.1.1:3306/mysql/connection-url drivermysql/driver security user-nameadmin/user-name passwordchangeme/password /security /datasource drivers driver nameh2 modulecom.h2database.h2 xa-datasource-classorg.h2.jdbcx.JdbcDataSource/xa-datasource-class /driver driver namemysql modulecom.mysql.jdbc xa-datasource-classcom.mysql.jdbc.jdbc2.optional.MysqlXADataSource/xa-datasource-class /driver /drivers /datasources /subsystem 您会注意到除了AS7中默认提供的ExampleDS外OpenShift Express还设置了一个MySQL数据源该数据源可从javajboss / datasources / MysqlDS获得。 这里要注意的重要一点是默认情况下它是禁用的即enabled false。 另请注意密码为“ changeme”。 基本上standalone.xml中MysqlDS的此数据源配置作为模板存在。 为了启用该数据源我们首先必须为我们的应用程序创建一个MySQL数据库。 可以通过使用以下命令来完成 jpaijpai-laptop:openshift$ rhc-ctl-app -a application-name -l email-id-we-used-to-register -e add-mysql-5.1 rhc-ctl-app传递了应用程序名称这是我们在rhc-create-app期间使用的名称以及我们的帐户ID。 此外我们使用-e选项来指定我们要执行的操作。 在这种情况下我们发出“ add-mysql-5.1”命令。 运行该命令将要求您输入帐户密码成功完成后将显示类似以下内容的输出 RESULT: Mysql 5.1 database added. Please make note of these credentials: Root User: admin Root Password: as43n34023n Connection URL: mysql://127.1.1.1:3306/ 记下用户名密码和连接URL。 现在在文本编辑器中打开repo-home /。openshift / config / standalone.xml并更新MysqlDS配置以使用连接URL用户名和新密码。 还将启用标志设置为“ true”以便启用数据源。 最终数据源配置将如下所示 datasource jndi-namejava:jboss/datasources/MysqlDS enabledtrue use-java-contexttrue pool-nameMysqlDS connection-urljdbc:mysql://127.1.1.1:3306/mysql/connection-url drivermysql/driver security user-nameadmin/user-name passwordas43n34023n/password /security /datasource 注意连接URL。 它的格式必须为jdbcmysql// ipport / dbname。 通常您根本不需要触摸该连接URL因为rhc-ctl-app add-mysql-5.1和数据源模板与IP /端口同步。 要更改的重要部分是密码和启用标志。 更新此文件后保存更改并将其提交到本地git repo jpaijpai-laptop:demo$ git commit -m Enable the MysqlDS and fix the password ./ [master dd7b58a] Fix the datasource password 1 files changed, 1 insertions(), 1 deletions(-) Push these changes to remote repo: jpaijpai-laptop:openshift$ git push origin master Counting objects: 9, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 494 bytes, done. Total 5 (delta 2), reused 0 (delta 0) remote: Stopping application... remote: done .... ..... remote: Starting application...done To ssh://6a7ff43a6c2246999de28219a5aaa4aejaikiran-jbossas.rhcloud.com/~/git/jaikiran.git/ 2d38fa8..dd7b58a master - master 因此我们现在添加了MySQL DB并启用了MysqlDS数据源该数据源可从服务器上的javajboss / datasources / MysqlDS jndi名称获得。 因此如果kitchensink应用程序必须使用MySQL作为数据库而不是H2那么它所要做的就是使用javajboss / datasources / MysqlDS。 现在让我们编辑前面看到的persistence.xml文件并使用MysqlDS代替 ?xml version1.0 encodingUTF-8? persistence version2.0 xmlnshttp://java.sun.com/xml/ns/persistence xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd persistence-unit nameprimary !-- Changed to use MysqlDS -- jta-data-sourcejava:jboss/datasources/MysqlDS/jta-data-source properties !-- Properties for Hibernate -- property namehibernate.hbm2ddl.auto valuecreate-drop / property namehibernate.show_sql valuefalse / /properties /persistence-unit /persistence 另外为了“表明”该新应用程序已被更新为使用MySQL数据库我还编辑了kitchensink应用程序的index.xhtml页面以在该页面上添加一条有关正在使用的MySQL数据库的消息 h3 span stylecolor: red; This application uses MySQL database as its persistence store /span /h3 接下来我将使用Maven在本地构建kitchensink应用程序以反映这些更改并生成新的jboss-as-kitchensink.war。 构建完成后现在让我们再次将其复制到本地git repo然后提交更改并将其推送到远程git repo jpaijpai-laptop:kitchensink$ cp target/jboss-as-kitchensink.war /home/jpai/OpenShift/myapps/demo/deploymentsjpaijpai-laptop:demo$ git commit -m Use MySQL database for kitchensink application ./ [master ded2445] Use MySQL database for kitchensink application 1 files changed, 0 insertions(), 0 deletions(-)jpaijpai-laptop:openshift$ git push origin master Counting objects: 7, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 1.35 KiB, done. Total 4 (delta 2), reused 0 (delta 0) remote: Stopping application... remote: done remote: Found .openshift/config/standalone.xml... copying to... ... ... ... remote: Starting application...done To ssh://6a7ff43a6c2246999de28219a5aaa4aejaikiran-jbossas.rhcloud.com/~/git/jaikiran.git/ 1637c21..ded2445 master - master jpaijpai-laptop:demo$ 从输出中整理了一些日志 因此在这一点上我们现在已更改了厨房应用程序以使用MySQL数据库并将其部署到我们的OpenShift Express AS7服务器。 因此让我们再次访问应用程序URL http://jaikiran-jbossas.rhcloud.com/jboss-as-kitchensink 。 如您所见该页面现在突出显示了有关正在使用的MySQL DB的消息。 继续并通过添加一些虚拟用户信息来试用该应用程序。 而已 我们已将应用程序成功部署到OpenShift Express服务器并且该应用程序可供使用。 摘要 到目前为止使用OpenShift一直是令人愉快的体验。 我计划在未来的几天中使用OpenShift尝试其他一些事情并在博客中发布任何有趣的细节。 有用的资源 在部署此应用程序时我不得不使用一些文档和OpenShift社区的帮助来了解如何进行全部设置。 以下是与OpenShift相关的有用资源的列表 OpenShift Express用户指南 OpenShift论坛 irc.freenode.net上的OpenShift IRC #openshift。 这里的人非常有帮助 斯科特·斯塔克Scott Stark的博客。 Scott的博客通常包含有关OpenShift和OpenShift上AS7的许多有用信息。 斯科特的博客绝对是必读 在哪里寻求帮助 通常OpenShift问题可在OpenShift论坛中得到解答。 对于OpenShift上有关AS7的问题最好的提问场所是JBoss Cloud Group。 参考 OpenShift Express在Jaikiran My Wiki博客上从JCG合作伙伴 Jaikiran Pai 部署Java EE应用程序支持AS7 。 相关文章 红帽Openshift入门–云中的Java EE6 Oracle WebLogic Java云服务–幕后花絮。 Java EE过去现在和云7 在云中开发和测试 从Spring到Java EE 6 翻译自: https://www.javacodegeeks.com/2012/01/openshift-express-deploy-java-ee.html