2015-06-21 100 views
0

我刚刚用DIY墨盒创建了一个新应用程序,并为它添加了一个MySQL墨盒。我也能够在线部署应用程序。 我无法将GlassFish管理控制台与OpenShift一起使用,但我需要设置JDBC资源连接池。我正在尝试使用我的本地glassfish服务器编辑远程glassfish服务器的domains.xml。我仍然无法连接到数据库。这是我迄今所做的:在Openshift上设置GlassFish-Mysql连接池

<jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="SamplePool" res-type="javax.sql.DataSource"> 
     <property name="User" value="adminvcsHiYw"></property> 
     <property name="DatabaseName" value="timetable"></property> 
     <property name="serverName" value="127.8.28.2"></property> 
     <property name="PortNumber" value="3306"></property> 
     <property name="URL" value="jdbc:mysql://127.8.28.2:3306/timetable"></property> 
     <property name="Password" value="_R-LrpYIcdUf"></property> 
    </jdbc-connection-pool> 

这是rhc tail -a appname

==> app-root/logs/mysql.log <== 
150621 7:55:43 InnoDB: highest supported file format is Barracuda. 
150621 7:55:43 InnoDB: Waiting for the background threads to start 
150621 7:55:44 InnoDB: 5.5.41 started; log sequence number 1686690 
150621 7:55:44 [Note] Server hostname (bind-address): '127.8.28.2'; port: 3306 
150621 7:55:44 [Note] - '127.8.28.2' resolves to '127.8.28.2'; 
150621 7:55:44 [Note] Server socket created on IP: '127.8.28.2'. 
150621 7:55:44 [Warning] 'proxies_priv' entry '@ [email protected]' ignored in --skip-name-resolve mode. 
150621 7:55:44 [Note] Event Scheduler: Loaded 0 events 
150621 7:55:44 [Note] /opt/rh/mysql55/root/usr/libexec/mysqld: ready for connections. 
Version: '5.5.41' socket: '/var/lib/openshift/5585ff875004465b5500013a/mysql//socket/mysql.sock' port: 3306 MySQL Community Server (GPL) 
` 

我在做什么错输出?谁能帮忙?

回答

1

所以要举办一个Java应用程序使用Openshift一个GlassFish服务器上运行,则需要:从GitHub

  • 克隆glassfish DIY你要使用。 domain.xml配置文件已被修改为在OpenShift上运行。 它已经在domain1/lib中包含MySQL驱动程序。该档案还包含我们需要的启动和停止挂钩。

  • 在应用程序页面选择做它自己动手,DIY,墨盒enter image description here

  • 填充它下面的图片,如图所示。你应该选择你的应用程序名称和你的域名。

    enter image description here

  • 您将需要OpenShift Client Tools


配置

  • 一旦应用程序创建克隆它在本地机器上说 rhc git-clone diyapp并将glassfish4目录(整个目录,不仅仅是其内容)移动到diyapp/diy。 将启动和停止钩子移到yourapp/.openshift/action_hooks中并检查并确保它们是可执行的。 chmod +x start stop

. ├── glassfish4 │   ├── bin │   ├── glassfish │   ├── javadb │   ├── mq │   └── pkg ├── README.md ├── start └── stop

  • 现在,添加,提交和推你做回OpenShift的变化:

    cd diyapp git add . git status git commit -m "Added GlassFish" git push 推会导致应用程序重新启动并执行可爱的新起点。


部署应用

  • 要部署的应用程序,只需它的战争复制到域1 /自动部署,并再次运行以前的命令来添加,提交和推送更改。 GlassFish将在启动后自动部署您的应用程序。如果你觉得有什么地方出了问题,用SSH登录到你的应用程序,并寻找在autodeploy目录一个your.war_deployed文件:

    rhc app ssh diyapp cd $OPENSHIFT_REPO_DIR/ cd diy/glassfish4/glassfish/domains/domain1/autodeploy/ ls

如果没有这样的文件,看看服务器日志,找出了问题:

cd ../logs/ cat server.log | tail -n100


建立JDBC resourc es,连接池

  • 将MySQL盒式磁带添加到您的应用程序。

  • 您不能在OpenShift中使用GlassFish管理控制台。 glassfish-resources.xml似乎也不被支持。

在本地GlassFish服务器上设置所需的资源。 查看该服务器的domain.xml以查看所做的更改。 对yourapp中的domain1/config/domain.xml进行相同的更改。

这是我加入

`<jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="SamplePool" res-type="javax.sql.DataSource"> 
    <property name="User" value="adminvcsHiYw"></property> 
    <property name="DatabaseName" value="timetable"></property> 
    <property name="serverName" value="127.8.28.2"></property> 
    <property name="PortNumber" value="3306"></property> 
    <property name="URL" value="jdbc:mysql://127.8.28.2:3306/timetable"></property> 
    <property name="Password" value="_R-LrpYIcdUf"></property> 
</jdbc-connection-pool> 

` 因此数据库名称是您要添加MySQL的墨盒。端口名称是MYSQL的端口名称,创建MYSQL cartidge后将提供用户名和密码。

  • 在您的应用程序现在到处都寄予通过本地主机的
    OPENSHIFT_MYSQL_DB_HOST=127.9.226.130值替换它。

找出价值,ssh到你的应用程序和写命令:

`env | grep MYSQL` 

像往常一样:添加,提交和推送更改。

  • 就是这样你就完成了。

References