簡體   English   中英

Java EJB依賴注入在Apache Maven模塊上失敗

[英]Java EJB Dependency Injection Fails On Apache Maven Modules

我正在嘗試將Bean注入程序的主類。 我在Apache Maven下有兩個模塊:

- Java Parent
  - Module1
  - Module2

pom文件的一部分如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.screening</groupId>
<artifactId>screening</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Java Parent</name>

<properties>
  <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<modules>
  <module>Module1</module>
  <module>Module2</module>
</modules>
</project>

Module1 pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

 <parent>
    <groupId>com.screening</groupId>
    <artifactId>screening</artifactId>
    <version>1.0-SNAPSHOT</version>
 </parent>

 <modelVersion>4.0.0</modelVersion>

<groupId>com.screening</groupId>
<artifactId>module1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>ejb</packaging>

<name>Module1</name>
</project>

我在Module1中有一個無狀態的本地bean:

@Stateless
@Local
public class JDBCProcessorBean implements JDBCProcessorBean {
  // implemented methods
}

我在同一模塊中注入此類:

@Startup
@Singleton
public class Runner {

     @EJB
     private JDBCProcessor jdbcProcessor; // this is injected at runtime
}

JDBCProcessor是在運行時注入的,我可以使用JDBCProcessor的方法。 當我將module2 bean注入Runner類時,就會出現問題。 它找不到我所上的課。 同樣,它具有@Stateless和@Local。 即使我嘗試使用@Remote,也仍然找不到它。 我懂了

 javax.NamingNotFoundException

唯一的問題是注入不同模塊中的bean。 如何解決?

您還記得在另一個模塊中將bean.xml添加到src / main / resources / META-INF嗎?

-更新-

它實際上不必包含任何bean。 應該接一個空的:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM