1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[JBoss] Why EntityManager cant be found?

Discussão em 'StackOverflow' iniciado por Stack, Outubro 14, 2024 às 12:33.

  1. Stack

    Stack Membro Participativo

    I am creating project which focuses on manufacturing a Car, so for that I created an Entity Class and Dao that uses EntityManager as shown below

    package org.car_factory.car_factory_logic.dao;
    import java.util.logging.Logger;
    import javax.ejb.Stateless;
    import javax.inject.Inject;
    import javax.persistence.EntityManager;
    import org.car_factory.car_factory_logic.entity.Car;

    @Stateless
    public class CarEJB {

    @Inject
    private Logger logger;

    @Inject
    private EntityManager entityManager;

    public void createCar(Car carbody)
    {
    logger.info("Congratulations your car is created");
    entityManager.persist(carbody);
    }

    public void updateCar(Car carbody)
    {
    logger.info("Congratulations your car is updated");
    entityManager.merge(carbody);
    }


    public void removeCar(Car carbody)
    {
    logger.info("your carbody is removed");
    entityManager.merge(carbody);
    }

    }


    and Logger is also set

    package org.car_factory.car_factory_logic.utils;
    import java.util.logging.Logger;
    import javax.enterprise.inject.Produces;
    import javax.enterprise.inject.spi.InjectionPoint;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;

    public class EntityManagerProducer {


    @Produces
    @PersistenceContext
    private EntityManager entityManager;

    @Produces
    public Logger produceLog(InjectionPoint injectionPoint)
    {
    return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
    }


    }


    persistence.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
    http://xmlns.jcp.org/xml/ns/persistence
    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="primary" transaction-type="JTA">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/CarFactoryDB</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>

    <properties>
    <!-- Properties for Hibernate -->
    <property name="hibernate.hbm2ddl.auto" value="validate" />
    <property name="hibernate.show_sql" value="true" />
    </properties>
    </persistence-unit>
    </persistence>


    beans.xml

    <?xml version="1.0"?>
    <beans bean-discovery-mode="all" version="2.0"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"/>


    pom

    <?xml version="1.0" encoding="UTF-8"?>

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


    <parent>
    <groupId>org.car-factory</groupId>
    <artifactId>car-factory</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>car-factory-logic</artifactId>
    <packaging>ejb</packaging>

    <name>car-factory-logic</name>
    <description>A simple car-factory-logic.</description>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>


    <dependencies>

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.34</version>
    <optional>true</optional>
    </dependency>
    <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.7.3</version>
    </dependency>
    <!-- Jackson Databind -->


    <dependency>
    <groupId>org.wildfly.bom</groupId>
    <artifactId>jboss-javaee-7.0-with-tools</artifactId>
    <version>8.2.1.Final</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    <dependency>
    <groupId>org.wildfly.bom</groupId>
    <artifactId>jboss-javaee-7.0-with-hibernate</artifactId>
    <version>8.2.1.Final</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>




    <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>org.jboss.spec.javax.annotation</groupId>
    <artifactId>jboss-annotations-api_1.2_spec</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>jaxrs-api</artifactId>
    <scope>provided</scope>
    <version>3.0.12.Final</version>
    </dependency>

    <dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.1.4.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1</version>
    </dependency>

    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.5.0-b01</version>
    </dependency>

    <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.190</version>
    </dependency>

    <dependency>
    <groupId>org.glassfish.grizzly</groupId>
    <artifactId>grizzly-http-server</artifactId>
    <version>2.3.24</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-grizzly2-http</artifactId>
    <version>2.0-m05-2</version>
    </dependency>

    <dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.22.1</version>
    </dependency>

    <dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.0-m05-2</version>
    </dependency>

    <dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.6.2</version>
    </dependency>

    <dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <scope>provided</scope>
    <version>1.0.0.Final</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.spec.javax.ejb</groupId>
    <artifactId>jboss-ejb-api_3.2_spec</artifactId>
    <scope>provided</scope>
    <version>1.0.0.Final</version>
    </dependency>

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <scope>provided</scope>
    <version>8.0.0.Final</version>
    <exclusions>
    <exclusion>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.0.5.Final</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.spec.javax.faces</groupId>
    <artifactId>jboss-jsf-api_2.2_spec</artifactId>
    <version>2.2.13</version>
    <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-jpamodelgen</artifactId>
    <scope>provided</scope>
    <version>6.4.10.Final</version>
    <type>pom</type>
    </dependency>

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator-annotation-processor</artifactId>
    <scope>provided</scope>
    <version>5.4.3.Final</version>
    </dependency>



    <dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-container</artifactId>
    <scope>test</scope>
    <version>1.8.0.Final</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.arquillian.protocol</groupId>
    <artifactId>arquillian-protocol-servlet</artifactId>
    <scope>test</scope>
    <version>1.7.0.Final</version>
    </dependency>

    </dependencies>



    <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <version>3.2.1</version>
    <configuration>
    <ejbVersion>3.1</ejbVersion>
    </configuration>
    </plugin>
    <plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>3.4.0</version>
    </plugin>
    <plugin>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.12.1</version>
    </plugin>
    <plugin>
    <artifactId>maven-project-info-reports-plugin</artifactId>
    <version>3.6.1</version>
    </plugin>
    <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
    <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.3.1</version>
    </plugin>
    <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.13.0</version>
    </plugin>
    <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.3.0</version>
    </plugin>
    <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.4.2</version>
    </plugin>
    <plugin>
    <artifactId>maven-install-plugin</artifactId>
    <version>3.1.2</version>
    </plugin>
    <plugin>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>3.1.2</version>
    </plugin>
    </plugins>
    </pluginManagement>
    </build>

    <reporting>
    <plugins>
    <plugin>
    <artifactId>maven-project-info-reports-plugin</artifactId>
    </plugin>
    </plugins>
    </reporting>
    </project>


    The database Is also configured in wildfly. however after deploying this jar file in wildfly I get.

    {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"car-factory-logic.jar\".WeldStartService" => "Failed to start service
    Caused by: java.lang.IllegalArgumentException: WFLYWELD0037: Error injecting persistence unit into Jakarta Contexts and Dependency Injection managed bean. Can't find a persistence unit named '' in deployment car-factory-logic.jar for injection point private javax.persistence.EntityManager org.car_factory.car_factory_logic.utils.EntityManagerProducer.entityManager"}}


    I tried also to update the dependencies but that also didn't help what else could be the issue.

    Continue reading...

Compartilhe esta Página