Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 缺少依赖项JBoss AS 7.1.1_Java_Xml_Jdbc_Jboss - Fatal编程技术网

Java 缺少依赖项JBoss AS 7.1.1

Java 缺少依赖项JBoss AS 7.1.1,java,xml,jdbc,jboss,Java,Xml,Jdbc,Jboss,我知道有很多关于这个错误的话题,但是我仍然有一些问题 我实际上正试图在JBoss 7.1.1上部署war,不幸的是,我一次又一次地遇到这个错误: JBAS014775: New missing/unsatisfied dependencies: service jboss.naming.context.java.module.myapplication.myapplication.env.jdbc_app (missing) dependents: [service jboss.nam

我知道有很多关于这个错误的话题,但是我仍然有一些问题

我实际上正试图在JBoss 7.1.1上部署war,不幸的是,我一次又一次地遇到这个错误:

JBAS014775:    New missing/unsatisfied dependencies:
  service jboss.naming.context.java.module.myapplication.myapplication.env.jdbc_app (missing) dependents: [service jboss.naming.context.java.module.myapplication.myapplication.env.jdbc.PKBNM01]
这就是我的DS在standalone.xml中的定义方式(我与数据库连接良好):


jdbc:oracle:thin:@localhost:1521:xe
oracle.jdbc.OracleDriver
ojdbc6.jar
管理
密码
假的
假的
假的
这是jboss-web.xml:

<jboss-web>
       <resource-ref>
           <res-ref-name>jdbc/PKBNM01</res-ref-name>
           <jndi-name>jdbc_app</jndi-name>
       </resource-ref>
       <context-root>myApplication</context-root>
 </jboss-web>

jdbc/PKBNM01
jdbc_应用程序
我的申请
这是我的web.xml:

<resource-ref>
    <res-ref-name>jdbc/PKBNM01</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

jdbc/PKBNM01
javax.sql.DataSource
容器

如果有人能解释我做错了什么,甚至只是给我一个线索,那将是非常受欢迎的…

很难给出一个明确的答案,但我可以做一些观察

1) 我从未在jboss-web.xml或web.xml中配置过任何东西,以使数据源可用于jboss中的应用程序模块。standalone.xml中的数据源声明就足够了

2) 官方文档说明您应该创建一个驱动程序模块;我建议你照做

3) 这就是我的数据源的样子(MySQL数据库示例):


jdbc:mysql://localhost:3306/somedatabase?useUnicode=true&characterEncoding=UTF-8
mysql
某个用户
萨默帕斯
基本上,我只是复制并修改了standalone.xml中默认的“examples”

完成时,JPA persistence.xml可以如下所示:;我从中删除了一些垃圾,以使其切中要害:

<persistence ... version="2.0">  
   <persistence-unit name="MyPU">  
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:jboss/datasources/MyDS</jta-data-source>
      ...
   </persistence-unit>  
</persistence>

org.hibernate.ejb.HibernatePersistence
java:jboss/datasources/MyDS
...
因此,只需在standalone.xml中定义数据源的JNDI名称即可


希望这些观察结果中的一个能帮助您更进一步。

将这一行
java:jboss/jdbc/
改为
java:jboss/datasources

<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/OracleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>


谢谢您的回答。这没有帮助,但我的问题现在已经解决了。我刚刚删除了我的web.xml,它就工作了。我不认为它对未来的开发者真的有用。你认为我应该删除我的问题吗?我的回答怎么没有帮助,我在第1点中明确指出web.xml和jboss-web.xml中的条目是不需要的:/噢,是的,对不起,我昨天太累了,我读了你所有的回答,但我想我错过了第一点,非常感谢!
<persistence ... version="2.0">  
   <persistence-unit name="MyPU">  
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:jboss/datasources/MyDS</jta-data-source>
      ...
   </persistence-unit>  
</persistence>
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/OracleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>