![](/img/trans.png)
[英]How to Deploy a Spring managed JPA application on JBoss 6.3 EAP
[英]Unable to deploy an application in JBOSS EAP 6.3
我正在尝试在jboss EAP 6.3中部署耳朵,但出现以下错误:
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.jdbc.mn572phOraDataSource (missing) dependents: [service jboss.naming.context.java.module.pharma.pharma.env.jdbc.mn572phOraDataSource]
service jboss.naming.context.java.jdbc.mn572phaOraDataSource (missing) dependents: [service jboss.naming.context.java.module.pharma.pharma.env.jdbc.mn572phaOraDataSource]
15:01:38,171 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss EAP 6.3.0.GA (AS 7.4.0.Final-redhat-19) started (with errors) in 66301ms - Started 462 of 659 services (160 services failed or missing dependencies, 64 services are lazy, passive or on-demand)
我的standlone.xml文件具有以下条目:
<datasource jndi-name="java:/module/env/jdbc/mn572phOraDataSource" pool-name="mn572phOraDataSource" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@test:1521:mndb11g</connection-url>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<security>
<user-name>test</user-name>
<password>test</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle.jdbc.driver.OracleDriver" module="oracle.jdbc.driver.OracleDriver">
<datasource-class>oracle.jdbc.driver.OracleDriver</datasource-class>
</driver>
</drivers>
</datasources>
我的.war文件中的jboss-web.xml具有以下条目:
<resource-ref>
<res-ref-name>jdbc/mn572phaOraDataSource</res-ref-name>
<jndi-name>java:/jdbc/mn572phaOraDataSource</jndi-name>
</resource-ref>
任何人都可以解释该错误说明什么以及可能是什么问题。
通常,“新的丢失/不满意的依赖项:”与您的耳文件的内容有关,该文件与其中的资源有关,并在服务器上提供。 告诉您的是,有一些您尚未提供的对象注入请求:
我可能会想到六件事。
第二点很复杂,涉及Java EE应用程序中类加载器的范围。 基本上:
更新:很抱歉延迟回复,但我想在回答之前先检查一下,因为该区域非常复杂。
在这种情况下,问题是您在jboss-web.xml中提供的名称与您在standalone.xml中提供的名称之间不匹配。
JavaEE6有几个不同的资源命名空间。
jboss-web.xml的默认名称空间是模块名称空间,它用作java:module //// XXXXX。 在您的情况下,您的模块就是您的war文件(药房),除非您在称为pharma的耳文件中实际定义了模块,否则JBOSS会自动将其包装在称为pharma的耳文件中。 所以你得到java:module/pharma/pharma/XXXXXX
。
standalone.xml
的默认名称空间是java:global
因此实际的数据源可能安装在java:global/module/env/jdbc/mn572phaOraDataSource
我试图运行一个小的Webapp应用程序,其中包含您提供的配置文件,并提供用于映射的资源,我添加了一个@Singleton @Startup
bean,该bean定义了到Datasource
@Resource
链接。
我设法得到了与您的错误消息类似的内容,尽管不是完全
我认为有两个问题:
java:/jdbc/mn572phaOraDataSource
与java:/jdbc/mn572phaOraDataSource
中的java:/module/env/jdbc/mn572phOraDataSource
不匹配。 我通过将standalone.xml中的名称更改为java:/jdbc/mn572phaOraDataSource
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.