JAVA jboss 7 缺少 jboss.naming.context.java - 无法运行耳朵

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13037890/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 11:16:57  来源:igfitidea点击:

JAVA jboss 7 missing jboss.naming.context.java - CAN'T RUN EAR

javajbossejb

提问by Sean

I'm trying to run an ear on jboss 7 and everytime I run the ear I get this error:

我正在尝试在 jboss 7 上运行耳朵,每次运行耳朵时都会出现此错误:

"Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"PROJECTNAME.jar#PROJECTNAMEPU\" missing [ jboss.naming.context.java.PROJECTNAME ]"]

“缺少/不可用依赖项的服务” => [“jboss.persistenceunit.\”PROJECTNAME.jar#PROJECTNAMEPU\” 缺失 [ jboss.naming.context.java.PROJECTNAME ]”]

Also before this error I get this feedback for every session/entity bean;

同样在此错误之前,我会收到每个会话/实体 bean 的反馈;

INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-8) JNDI bindings for session bean named SESSIONBEAN in deployment unit subdeployment "PROJECTNAME.war" of deployment "PROJECTNAME.ear" are as follows:

INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor](MSC服务线程1-8)部署“PROJECTNAME.ear”的部署单元子部署“PROJECTNAME.war”中名为SESSIONBEAN的会话bean的JNDI绑定如下:

I tried looking it up and idk what I'm missing, any suggestions or help??

我试着查找它并找出我错过了什么,有什么建议或帮助吗?

UPDATE:In my standalone.xml for jboss

更新:在我的standalone.xml for jboss

<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>

My persitence.xml

我的持久性.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>

回答by Brian Smith

Looks like your EAR requires some JNDI bindings to be configured in JBoss, likely DataSources for use by JPA. Java EE applications can have dependencies on services provided by the container and those are usually looked up using the naming service (JNDI).

看起来您的 EAR 需要在 JBoss 中配置一些 JNDI 绑定,可能是供 JPA 使用的数据源。Java EE 应用程序可能依赖于容器提供的服务,并且通常使用命名服务 (JNDI) 查找这些服务。

Check the deploy/install instructions that come with the EAR you're trying to deploy, or refer back to whoever provides the application. Unfortunately it's not possible to provide much more help without much more info.

检查您尝试部署的 EAR 随附的部署/安装说明,或者向提供应用程序的任何人咨询。不幸的是,如果没有更多信息,就不可能提供更多帮助。