【问题标题】:How can I configure data source and jdbc driver using project-stages.yml?如何使用 project-stages.yml 配置数据源和 jdbc 驱动程序?
【发布时间】:2017-01-07 09:20:01
【问题描述】:

我正在尝试将 wildfly-swarm 与 project-stages.yml 一起使用

src/main/resources/META-INF/persistence.xml

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
  <persistence-unit name="somePU" transaction-type="JTA">
    <jta-data-source>someDS</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.validation.mode" value="CALLBACK" />
    </properties>
  </persistence-unit>
</persistence>

src/main/resources/project-stages.yml

project:
  stage: default
---
project:
  stage: development
logger:
  level: DEBUG
swarm:
  jdbc:
    driver: org.apache.derby.jdbc.EmbeddedDriver
  ds:
    name: someDS
    connection:
      url: jdbc:derby:memory:someDB;create=true
  port:
    offset: 200
---
project:
  stage: integration
---
project:
  stage: staging
---
project:
  stage: production

mvn -Dswarm.project.stage=development -jar target/some-server-swarm.jar

2017-01-07 18:09:48,782 ERROR [stderr] (main) java.lang.reflect.InvocationTargetException
2017-01-07 18:09:48,782 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-01-07 18:09:48,782 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2017-01-07 18:09:48,783 ERROR [stderr] (main)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2017-01-07 18:09:48,783 ERROR [stderr] (main)   at java.lang.reflect.Method.invoke(Method.java:498)
2017-01-07 18:09:48,783 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:37)
2017-01-07 18:09:48,783 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.run(Main.java:44)
2017-01-07 18:09:48,783 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.main(Main.java:35)
2017-01-07 18:09:48,784 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: WFSWARM0007: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.someDS"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"some-server.war#somePU\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jboss.datasources.someDS]","jboss.persistenceunit.\"some-server.war#somePU\" is missing [jboss.naming.context.java.jboss.datasources.someDS]"]}
2017-01-07 18:09:48,784 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:280)
2017-01-07 18:09:48,784 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:95)
2017-01-07 18:09:48,784 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.deploy(Swarm.java:475)
2017-01-07 18:09:48,784 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.main(Swarm.java:612)
2017-01-07 18:09:48,784 ERROR [stderr] (main)   ... 7 more
2017-01-07 18:09:48,784 ERROR [stderr] (main) Exception in thread "main" java.lang.reflect.InvocationTargetException
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at java.lang.reflect.Method.invoke(Method.java:498)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:37)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.run(Main.java:44)
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.Main.main(Main.java:35)
2017-01-07 18:09:48,785 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: WFSWARM0007: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.someDS"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"some-server.war#somePU\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jboss.datasources.someDS]","jboss.persistenceunit.\"some-server.war#somePU\" is missing [jboss.naming.context.java.jboss.datasources.someDS]"]}
2017-01-07 18:09:48,785 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:280)
2017-01-07 18:09:48,786 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:95)
2017-01-07 18:09:48,786 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.deploy(Swarm.java:475)
2017-01-07 18:09:48,786 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.main(Swarm.java:612)
2017-01-07 18:09:48,786 ERROR [stderr] (main)   ... 7 more

【问题讨论】:

标签: wildfly-swarm


【解决方案1】:

我正在为其他人分享我的解决方案。

src/main/resources/project-stages.yml

正如simas_ch 所说,How to create a datasource 足以修复此部分。

swarm:
  datasources:
    data-sources:
      someDS:
        driver-name: h2
        connection-url: jdbc:h2:mem:someDB

src/main/resources/META-INF/persistence.xml

这部分永远是最痛苦的。我不得不这样做。

<jta-data-source>java:jboss/datasources/someDS</jta-data-source>

【讨论】:

  • 哦,我忘记发布 JNDI 名称了。很抱歉,很高兴您自己找到了解决方案。Wildfly Swarm 的文档仍然非常有限。希望以后会更好。
猜你喜欢
  • 2013-08-12
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 2016-12-08
  • 2012-03-04
  • 2021-01-17
  • 1970-01-01
相关资源
最近更新 更多