JBoss 7 缺少 jboss.naming.context.java - 无法运行 EAR
Posted
技术标签:
【中文标题】JBoss 7 缺少 jboss.naming.context.java - 无法运行 EAR【英文标题】:JBoss 7 missing jboss.naming.context.java - can't run EAR 【发布时间】:2012-10-13 19:47:27 【问题描述】:我正在尝试在 jboss 7 上运行耳朵,每次运行耳朵时都会出现此错误:
“缺少/不可用依赖项的服务”=> ["jboss.persistenceunit.\"PROJECTNAME.jar#PROJECTNAMEPU\" 丢失 [ jboss.naming.context.java.PROJECTNAME ]"]
在此错误之前,我也会收到每个会话/实体 bean 的反馈;
信息 [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC 服务线程 1-8)命名为会话 bean 的 JNDI 绑定 SESSIONBEAN 在部署单元子部署“PROJECTNAME.war”的 部署“PROJECTNAME.ear”如下:
我尝试查找它并找出我缺少的东西,有什么建议或帮助吗?
更新: 在我的 jboss 的standalone.xml 中
<datasource jndi-name="java:jboss/datasources/PROJECTNAME" enabled="true" use-java-context="true" pool-name="PROJECTNAME" use-ccm="false">
<connection-url>jdbc:oracle:thin:@SERVER:PORT:support</connection-url>
<driver>ojdbc14.jar</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>USERNAME</user-name>
<password>PASS</password>
</security>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/PROJECTNAME" pool-name="PROJECTNAME">
<driver>ojdbc14.jar</driver>
<xa-datasource-property name="URL">jdbc:oracle:thin:@SERVER</xa-datasource-property>
<xa-pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</xa-pool>
<security>
<user-name>USERNAME</user-name>
<password>PASS</password>
</security>
</xa-datasource>
<drivers>
<driver name="oracle" module="com.oracle.ojdbc14">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
我的 persitence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="PROJECTNAMEPU" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/PROJECTNAME</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
【问题讨论】:
【参考方案1】:看起来您的 EAR 需要在 JBoss 中配置一些 JNDI 绑定,可能是供 JPA 使用的数据源。 Java EE 应用程序可以依赖于容器提供的服务,这些服务通常使用命名服务 (JNDI) 进行查找。
查看您尝试部署的 EAR 随附的部署/安装说明,或向提供该应用程序的人咨询。不幸的是,如果没有更多信息,就无法提供更多帮助。
【讨论】:
为 jboss 添加了关于我的standalone.xml 的信息,persistence.xml 信息也有帮助吗?或者您需要什么信息?以上是关于JBoss 7 缺少 jboss.naming.context.java - 无法运行 EAR的主要内容,如果未能解决你的问题,请参考以下文章
找不到 freemarker div-close.ftl 升级到 JBoss 7
Wildfly MySQL 数据源:服务 jboss.jdbc-driver.mysql(缺少)依赖项
Jboss 7 - Spring - 使用 Jboss TransactionManager