我在使用Wildfly 10和MySQL 5.5的Openshift上使用我的webapp(wsesupport)进行了挣扎。每次我在eclipse中发布时,(在服务器视图中,右键单击Openshift上的wsesupport)我的项目没有部署,在日志文件中我可以找到错误消息:
Encoding.Default
我通过myapp的管理控制台在线重新添加了我的数据源。我是通过2016-03-10 17:32:56,740 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ROOT.war")]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
"jboss.persistenceunit.\"ROOT.war#wsesupport\".__FIRST__PHASE__ is missing [jboss.naming.context.java.wsesupport]",
"jboss.persistenceunit.\"ROOT.war#wsesupport\" is missing [jboss.naming.context.java.wsesupport]"
命令然后在浏览器rhc port-forward wsesupport
中完成的。我注意到在发布之后,我在Non XA数据源中创建的条目总是消失。
答案 0 :(得分:0)
在Mac中,我搜索了Resources(cmd-shift-r)并搜索了standalone.xml。我这样做是因为在过去我记得我可以使用我的网络应用程序部署standalone.xml,并且配置将被添加到默认的Wildlfy配置(或类似的东西)。所以我想试一试,也许我不知道项目中的这样一个文件...
令人惊讶的是,它在隐藏的openshift文件夹中找到了它。如果您正在使用eclipse(肯定)和openshift插件,它会马上找到它。我在那里复制了当前的MySqlDS配置:
<datasource jndi-name="java:/wsesupport" enabled="true"
use-java-context="true" pool-name="wsesupport" use-ccm="true">
<connection-url>jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/wsesupport
</connection-url>
<driver>mysql</driver>
<security>
<user-name>${env.OPENSHIFT_MYSQL_DB_USERNAME}</user-name>
<password>${env.OPENSHIFT_MYSQL_DB_PASSWORD}</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<background-validation>true</background-validation>
<background-validation-millis>60000</background-validation-millis>
<!--<validate-on-match>true</validate-on-match> -->
</validation>
<pool>
<flush-strategy>IdleConnections</flush-strategy>
</pool>
</datasource>
然后我再次发布我的项目,它正在运作!
PS不要删除ExampleDS! WildFly显然需要它!
PS2不格式化Eclipse中的standalone.xml!当我这样做时,我收到了这个奇怪的错误:java.lang.IllegalStateException: You have to start the service first!