2013-06-18 26 views
0

我試圖讓聲納在OpenShift上工作。當我嘗試在sonar.properties文件中使用環境變量時,它們不是由聲納解析的。爲什麼環境變量在我的聲納配置中失敗?

結果看起來是這樣的:

2013.06.18 17:22:19 INFO o.s.c.p.Database Create JDBC datasource for jdbc:mysql://${env:OPENSHIFT_MYSQL_IP}:${env:OPENSHIFT_MYSQL_PORT}/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true 
2013.06.18 17:22:20 ERROR o.s.c.p.Database Can not connect to database. Please check connectivity and settings (see the properties prefixed by 'sonar.jdbc.'). 
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "OPENSHIFT_MYSQL_IP}:${env:OPENSHIFT_MYSQL_PORT}"'.) 
    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) ~[commons-dbcp-1.3.jar:1.3] 
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) ~[commons-dbcp-1.3.jar:1.3] 
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.3.jar:1.3] 
    at org.sonar.core.persistence.DefaultDatabase.checkConnection(DefaultDatabase.java:140) [sonar-core-3.5.1.jar:na] 
    at org.sonar.core.persistence.DefaultDatabase.start(DefaultDatabase.java:69) [sonar-core-3.5.1.jar:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_19] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_19] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_19] 
    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_19] 

我想了解聲納的可變分辨率是如何工作的,這樣我就可以開始弄清楚什麼是錯的OpenShift。

回答

0

我能得到聲納運行使用Git://github.com/wenhao/openshift-sonar.git有輕微的修改:

  • 刪除默認jbossews示例應用程序(GIT RM -r POM .XML SRC/web應用/ ROOT.war
  • 只複製了ROOT /,聲納-3.3.1 /和.openshift/action_hooks/pre_start_jbossews-1.0從回購
  • 更名pre_start_jbossews-1.0至pre_start_jbossews(由於更改v2墨盒的重命名)
  • 修改ROOT/WEB-INF /類/ sonar-war.properties:

    #SONAR_HOME = $ {ENV:OPENSHIFT_REPO_DIR} /webapps/sonar-3.3.1 SONAR_HOME =的/ var/lib中/ openshift/51c0c3c1e0b8cd74800000dc/APP-根/回購/ web應用/聲納-3.3.1

  • git add。

  • git的承諾/推

我不明白爲什麼ROOT/WEB-INF /班/ sonar-war.properties不能解決環境變量,但聲納-3.3.1/conf目錄/sonar.properties解決它們就好了:

sonar.jdbc.username:      ${env:OPENSHIFT_MYSQL_DB_USERNAME} 
sonar.jdbc.password:      ${env:OPENSHIFT_MYSQL_DB_PASSWORD}