当前位置: 首页 > 知识库问答 >
问题:

在OpenShift JBoss上部署WAR失败,带有PostgreSQL-缺少依赖项错误

柴丰
2023-03-14

我是OpenShift的新手,并使用JBoss AS7和PostgreSQL 9.2 Gears创建了我的第一个应用程序。我成功地创建了DB,并尝试部署一个现有的WAR,遵循我在以下两个页面中找到的指导:

https://www.openshift.com/kb/kb-e1088-how-to-deploy-pre-compiled-java-applications-war-and-ear-files-on-your-openshift-gear

Counting objects: 130, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (118/118), done.
Writing objects: 100% (125/125), 1.17 MiB | 0 bytes/s, done.
Total 125 (delta 15), reused 0 (delta 0)
remote: Stopping jbossas cartridge
remote: Sending SIGTERM to jboss:139169 ...
remote: Stopping Postgres cartridge
remote: Building git ref 'master', commit 193ff43
remote: Skipping Maven build due to absence of pom.xml
remote: Preparing build for deployment
remote: Deployment id is 57ba6341
remote: Activating deployment
remote: Starting Postgres cartridge
remote: Postgres started
remote: Deploying JBoss
remote: Starting jbossas cartridge
remote: Found 127.4.111.129:8080 listening port
remote: Found 127.4.111.129:9999 listening port
remote: /var/lib/openshift/535e75ffe0b8cd39b600043f/jbossas/standalone/deploymen
ts /var/lib/openshift/535e75ffe0b8cd39b600043f/jbossas
remote: /var/lib/openshift/535e75ffe0b8cd39b600043f/jbossas
remote: Failed deployments: ./tradelite.war
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success
To ssh://535e75ffe0b8cd39b600043f@jbossas-tradelite1.rhcloud.com/~/git/jbossas.g
it/
   862add8..193ff43  master -> master
==> app-root/logs/jbossas.log  ["jboss.naming.context.java.module.tradelite.tradelite.env.jdbc.TradeDataSourcejboss.naming.context.java.jboss.resources.jdbc.TradeDataSourceMissing[jboss.naming.context.java.module.tradelite.tradelite.env.jdbc.TradeDataSourcejboss.naming.context.java.jboss.resources.jdbc.TradeDataSource]"]}
2014/04/30 08:45:49,609 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment tradelite.war in 95ms
2014/04/30 08:45:49,613 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.naming.context.java.jboss.resources.jdbc.TradeDataSource (missing) dependents: [service jboss.naming.context.java.module.tradelite.tradelite.env.jdbc.TradeDataSource]
2014/04/30 08:45:49,615 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.tradelite.tradelite.env.jdbc.TradeDataSourcejboss.naming.context.java.jboss.resources.jdbc.TradeDataSourceMissing[jboss.naming.context.java.module.tradelite.tradelite.env.jdbc.TradeDataSourcejboss.naming.context.java.jboss.resources.jdbc.TradeDataSource]"]}}}

下面是my StandalOne.xml中的datasources部分:

        <datasources>
            <datasource jndi-name="java:jboss/datasources/PostgreSQLDS" enabled="${postgresql.enabled}" use-java-context="true" pool-name="PostgreSQLDS" use-ccm="true">
                <connection-url>jdbc:postgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.OPENSHIFT_POSTGRESQL_DB_PORT}/${env.OPENSHIFT_APP_NAME}</connection-url>
                <driver>postgresql</driver>
                <security>
                  <user-name>${env.OPENSHIFT_POSTGRESQL_DB_USERNAME}</user-name>
                  <password>${env.OPENSHIFT_POSTGRESQL_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>
            <drivers>
                <driver name="postgresql" module="org.postgresql.jdbc">
                    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
                </driver>
            </drivers>
        </datasources>

下面是WAR中META-INF目录中的context.xml:

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <Resource name="jdbc/TradeDataSource" auth="Container" type="javax.sql.DataSource"
        username="xxxxx"
        password="xxxxx"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://127.4.111.132:5432/jbossas"
        maxActive="20"
        maxIdle="10" />
</Context>

共有1个答案

全鸿晖
2023-03-14

每个OpenShift JBoss应用程序都在standalone.xml JBoss配置文件中配置了三个数据源(H2、MySQL和PostgreSQL)。在persistence.xml中,确保使用的是java:jboss/datasources/postgreSQL LDSJNDI datasource,否则会出现异常。

 类似资料:
  • 在JBoss启动日志中: 12:47:37,481错误[org.jboss.as.Controller.management-Operation](控制器引导线程)JBAS014612:Operation(“deploy”)失败-地址:([(“deployment”=>“liferay-portal.war”)])-失败描述:{“JBAS014771:Services with missing/u

  • 我有一个图书馆项目。我想使用Android的新构建系统。目前我遇到了一个相当烦人的情况。 我在上定义了依赖项,但它们从未出现在Android Studio的外部库中。因此,对这些库的所有引用都被标记为错误。 更新 这个问题似乎在最新的Android Studio版本(0.2.5)上得到了修复

  • 我有Jboss 7.1.1。最终安装,我正在尝试部署独立/部署中的war。同一场战争的部署在我同事的电脑上可以,但在我的电脑上失败了。 任何想法都好!这是我的网站。xml:http://textuploader.com/1oam.以下是日志(完整日志:http://textuploader.com/1oaq): 谢谢 菲利普 ------------------编辑 我找到了解决方案,我在独立/部

  • 我在Eclipse4.3中为一个动态web项目使用了ivy托管依赖关系,并且一切正常。在合并包含新模块项目的不同分支之后,Eclipse再也无法创建war了。如果我从部署程序集中移除IvyDependencies,就会创建一个war并再次部署--当然,这个归档丢失了所有依赖项。 在web project中,除了添加项目/模块和依赖项声明之外,没有编译错误,没有提交之间的配置更改。将eclipse配

  • 在我的项目中,一切都很完美,但我明白这一点。 所以我应该在我的gradle文件中添加google-service。 这些是我的依赖。 基本上,我使用GoogleAppClient对象来获取我的当前位置。我与地图或GCM无关。 有没有办法解决这个问题?我环顾四周,但还是有问题。 谢谢。

  • 我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep