[英]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.