如何在 JBPM 中将数据库从 h2 更改为 MySql
How to change database from h2 to MySql in JBPM
我想在 JBPM
中更改数据库(h2 到 SQL)
来自
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/jBPMDS" pool-name="jBPMXADS" enabled="true">
<xa-datasource-property name="URL"> jdbc:h2:file:${jboss.server.data.dir}/jbpm-db;MVCC=TRUE </xa-datasource-property>
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</xa-datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
到
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/jbpm5<connection-url>
<!--<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>-->
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>password</password>
</security>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/jBPMDS" pool-name="jBPMXADS" enabled="true">
<xa-datasource-property name="URL">jdbc:mysql://localhost:3306/jbpm5</xa-datasource-property>
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>password</password>
</security>
</xa-datasource>
<drivers>
<driver name="mysql" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
错误是:
16:38:46,711 错误 [org.jboss.as.server](控制器引导线程)WFLYSRV0055:引导期间捕获异常:org.jboss.as.controller.persistence.ConfigurationPersistenceException:WFLYCTL0085:无法解析配置
在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:143)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.ServerService.boot(ServerService.java:392)
在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
在 java.base/java.lang.Thread.run(Thread.java:829)
由以下原因引起:javax.xml.stream.XMLStreamException: org.codehaus.stax2.typed.TypedXMLStreamException: [row,col] 处的 ParseError:[169,70]
消息:使用类型化访问方法时,元素内容不能包含子 START_ELEMENT
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:650)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:204)
在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122)
在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.parseServerProfile(StandaloneXml_8.java:589)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.readServerElement(StandaloneXml_8.java:224)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.readElement(StandaloneXml_8.java:121)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:120)
在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:52)
在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122)
在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:76)
在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:126)
... 3 更多
由以下原因引起:org.codehaus.stax2.typed.TypedXMLStreamException: [row,col]:[169,70] 处的 ParseError
消息:使用类型化访问方法时,元素内容不能包含子 START_ELEMENT
在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader._constructTypeException(BasicStreamReader.java:5624)
在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader._constructUnexpectedInTyped(BasicStreamReader.java:5618)
在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader.getElementText(BasicStreamReader.java:737)
在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLExtendedStreamReaderImpl.getElementText(XMLExtendedStreamReaderImpl.java:144)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.util.AbstractParser.rawElementText(AbstractParser.java:61)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parseDataSource_4_0(DsParser.java:1960)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parseDataSources(DsParser.java:229)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parse(DsParser.java:189)
在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:643)
我认为直接操作独立的配置文件不是一个好主意,而且容易出错。
有一些脚本可以做到这一点,随 jbpm 提供:
To switch to MySQL use the following command when the server is stopped
<JBOSS_HOME>/bin/jboss-cli.sh --file=jbpm-mysql-config.cli (Unix / Linux)
<JBOSS_HOME>\bin\jboss-cli.bat --file=jbpm-mysql-config.cli (Windows)
参考是here
我想在 JBPM
中更改数据库(h2 到 SQL)来自
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/jBPMDS" pool-name="jBPMXADS" enabled="true">
<xa-datasource-property name="URL"> jdbc:h2:file:${jboss.server.data.dir}/jbpm-db;MVCC=TRUE </xa-datasource-property>
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</xa-datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
到
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/jbpm5<connection-url>
<!--<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>-->
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>password</password>
</security>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/jBPMDS" pool-name="jBPMXADS" enabled="true">
<xa-datasource-property name="URL">jdbc:mysql://localhost:3306/jbpm5</xa-datasource-property>
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>password</password>
</security>
</xa-datasource>
<drivers>
<driver name="mysql" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
错误是:
16:38:46,711 错误 [org.jboss.as.server](控制器引导线程)WFLYSRV0055:引导期间捕获异常:org.jboss.as.controller.persistence.ConfigurationPersistenceException:WFLYCTL0085:无法解析配置 在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:143) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.ServerService.boot(ServerService.java:392) 在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416) 在 java.base/java.lang.Thread.run(Thread.java:829) 由以下原因引起:javax.xml.stream.XMLStreamException: org.codehaus.stax2.typed.TypedXMLStreamException: [row,col] 处的 ParseError:[169,70] 消息:使用类型化访问方法时,元素内容不能包含子 START_ELEMENT 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:650) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:204) 在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) 在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.parseServerProfile(StandaloneXml_8.java:589) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.readServerElement(StandaloneXml_8.java:224) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml_8.readElement(StandaloneXml_8.java:121) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:120) 在 org.jboss.as.server@11.1.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:52) 在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) 在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:76) 在 org.jboss.as.controller@11.1.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:126) ... 3 更多 由以下原因引起:org.codehaus.stax2.typed.TypedXMLStreamException: [row,col]:[169,70] 处的 ParseError 消息:使用类型化访问方法时,元素内容不能包含子 START_ELEMENT 在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader._constructTypeException(BasicStreamReader.java:5624) 在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader._constructUnexpectedInTyped(BasicStreamReader.java:5618) 在 org.codehaus.woodstox//com.ctc.wstx.sr.BasicStreamReader.getElementText(BasicStreamReader.java:737) 在 org.jboss.staxmapper@1.3.0.Final//org.jboss.staxmapper.XMLExtendedStreamReaderImpl.getElementText(XMLExtendedStreamReaderImpl.java:144) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.util.AbstractParser.rawElementText(AbstractParser.java:61) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parseDataSource_4_0(DsParser.java:1960) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parseDataSources(DsParser.java:229) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DsParser.parse(DsParser.java:189) 在 org.jboss.as.connector@19.1.0.Final//org.jboss.as.connector.subsystems.datasources.DataSourcesExtension$DataSourceSubsystemParser.readElement(DataSourcesExtension.java:643)
我认为直接操作独立的配置文件不是一个好主意,而且容易出错。
有一些脚本可以做到这一点,随 jbpm 提供:
To switch to MySQL use the following command when the server is stopped
<JBOSS_HOME>/bin/jboss-cli.sh --file=jbpm-mysql-config.cli (Unix / Linux)
<JBOSS_HOME>\bin\jboss-cli.bat --file=jbpm-mysql-config.cli (Windows)
参考是here