2014-02-06 37 views
0

我已經用MYSQL(在Tomcat中)成功安裝了Drools KIE-WB,並且我想用dashbuilder實現相同的目標。如何安裝Drools Dashbuilder MySQL?

我的dashbuilder包是jbpm-dashbuilder-6.1.0-SNAPSHOT-tomcat-7。我已經測試了兩種不同的選擇:

第一種測試方法是:

執行文件中tomcat-7.0.50\webapps\dashbuilder\WEB-INF\etc\sql\1-create-mysql.sql。它創建一些表,但目前看來,東西錯過了,因爲啓動服務器時出現此錯誤:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dashboarddb.processinstancelog' doesn't exist 

第二個測試選項:

變化tomcat-7.0.50\webapps\dashbuilder\META-INF\context.xml有下一個數據源

<Resource name="jdbc/jbpm" auth="Container" 
    type="javax.sql.DataSource" username="drools-user" password="pass"   driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/dashboarddb?useUnicode=true&amp;characterEncoding=UTF8" 
    maxActive="8" 
    /> 

而在tomcat-7.0.50\webapps\dashbuilder\WEB-INF\etc\hibernate.cfg.xml我已經加入下一行:

<property name="hibernate.hbm2ddl.auto">update</property> 

強制Hibernate在MySQL中創建所有表。這幾乎是工作(創建幾個表),但出現了一個錯誤:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1-title-Dashboards Showcase' for key 'PRIMARY' 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    ... 

而且我不知道如何解決它(因爲我沒有什麼Hibernate提供了和創建信息)。

我沒有更多關於如何使用MySQL安裝儀表板的想法。有關如何實現它的任何線索?

回答

1

自jBPM儀表板從jBPM歷史日誌提供(更多詳細信息,請參閱https://github.com/droolsjbpm/jbpm-dashboard/tree/master/jbpm-dashboard-distributions/src/main/tomcat7)以來,兩個webapp(Kie-wb和jBPM儀表板)必須共享相同的數據庫。

因此,您首先需要針對給定的數據源部署和運行kie-wb。假設你將它命名爲「kie-wb」。一旦運行了kie-wb(在數據庫上創建了表),您可以繼續部署jbpm-dashboard,它必須配置爲連接相同的「kie-wb」數據源。

不要啓用自動ddl更新,因爲它不建議在生產中使用。您可以在應用程序之前運行腳本1-create-mysql.sql。部署或讓應用程序在啓動時運行它(如果它未檢測到某些必需的表,則自動運行腳本,實際上是由應用程序本身完成的)。

如果你按照上面的步驟一切都應該工作正常。否則,請不要猶豫再問一次。

+0

感謝您指出數據庫必須共享。我會測試你的建議。 – JorgeHortelano

+0

謝謝,這是解決方案。我仍然需要解決一些問題,但似乎是正確的方法。 – JorgeHortelano