用Eclipse进行Clound Foundry 布署项目时遇到的问题

黄平俊 发布于 2012/12/26 15:49
阅读 806
收藏 2

一直在用Eclipse3.4做开发(用久了一直舍不行换),为了把一个小项目布署到Clound Foundry ,特意又下载了Eclipse 4.2 。习惯性的下了Classic版,启动后,找了半天没找着Eclipse Marketplace ... 只好重新再下载个J2EE版的~~终于找着了Eclipse Marketplace,不得不说有这种集成插件市场,安装插件还是相当的方便~~

安装如下:


安装完成后,得把窗口调出来看看吧!window -> Show View ->Server:servicers

在CF上注册好的账号和密码,就可以建立一个Server了。这些初步安装配制和官方上也有说明。

环境配制好了,我最关心的就三个问题:

1、布署和更新

     按官方的指导,布署相当的容易,如下图:

     布署项目:


  更新项目,右键项目,直接点更新重启即可:

 

2、动态页面的正常解析?

      JSP页面可以正常解析!无任何问题。

3、数据库连接(池)是创建和配制?

       数据库的创建:

  

   创建了hello_2013和lewole两个数据库:

 

   启动数据库:(不启动数据库,将无法进行连接哦!)

   

   获取数据库的配制(Copy All):

  

  把内容粘贴到记事本上,如:
   UserName: ulLQZb7qlSmD8
   Password: pj1UDuD2PL3W5
   DatabaseName: d0703fa8f4cd04810b9521c2c7c047bc4    
   Port: 10100    
   URL: jdbc:mysql://127.0.0.1:10100/d0703fa8f4cd04810b9521c2c7c047bc4

   获取相应的内容后,就可以使用Navicat进行相应的表的创建,数据的导入操作了!!

 附注:

   1、启用本地Tomcat测试都正常,一旦布署到服务器时,启动失败并报:

严重: Error filterStart
2012-12-25 11:54:26 org.apache.catalina.core.StandardContext start
严重: Context [] startup failed due to previous errors
2012-12-25 11:54:26 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

     原因:本质上是数据库连接失败,因为我使用的是纯JDBC进行连接数据库,并不是所谓Spring数据源配制,此问题一直没解决,不知道是不是CF不支持JDBC连接呢?


2、如果查看布署后的文件目录结构呢?

     在Applications 的右下脚有个连接“Remote System View” 点击后,即可看到如下图:

查看远程目录是为了验证文件是否正常上传了,以免出现404的问题。


3、被CF折腾了一星期,最终的结果还是以失败告终,还是没法把应用正常跑起来。


加载中
0
红薯
红薯
之前我有个同事将 DLOG4J 上传上去跑了,没问题的啊,DLOG4J 也没有用 Spring
0
tsl0922
tsl0922
肯定支持JDBC连接的啊!

数据库配置最好每次启动应用时通过API动态获取,这些配置其实都是在系统环境变量里的,这里有个现成的获取配置信息的Java实现:

https://github.com/cloudfoundry/vcap-java/tree/master/cloudfoundry-runtime

使用方法:

RdbmsServiceInfo mysql = new CloudEnvironment().getServiceInfo("MySQL", RdbmsServiceInfo.class);

然后就可以通过mysql.getUrl()获取数据库连接URL,mysql.getUserName()获取用户名,mysql.getPassword()获取密码。

用此方法成功把DLOG4J跑在CF上:http://luckyc.cloudfoundry.com/

0
狼狼A狗
狼狼A狗
Remote System View 中有Logs文件夹,里面有日志,看日志一起问题都能解决了!
0
hanyan
hanyan

你好,你的这个问题解决了没?同问,遇到同样问题

0
noday
noday
catdev.cloudfoundry.com我部署成功了,appfog上也可以。
0
hanyan
hanyan

你连接数据库那部分代码是怎么连接?能发下参考一下吗?

hanyan
hanyan
@ideajava 谢谢!0
黄平俊
黄平俊
解决数据库连接的问题:http://www.oschina.net/question/1092_85822
返回顶部
顶部