java - Wildfly Swarm EntityManager is null -


i have microservice scheduler. timing job via rest json. followed tutorials on how add persistence.xml doesn't seem work. don't failure messages nullpointerexception entitymanager.

it doesn't create tables etc. think there problem adding persistence.xml too?

there no problem in connecting datasource. tested , seems work properly.

schedulermain:

import org.jboss.shrinkwrap.api.shrinkwrap; import org.jboss.shrinkwrap.api.asset.classloaderasset; import org.wildfly.swarm.swarm; import org.wildfly.swarm.container.container; import org.wildfly.swarm.datasources.datasourcearchive; import org.wildfly.swarm.jaxrs.jaxrsarchive;  public class schedulermain {  public static void main(string[] args) {      try {         container container = new container();         container.start();         container.deploy(swarm.artifact("mysql:mysql-connector-java", "mysql"));          deployapp(container);      } catch (exception e) {         e.printstacktrace();     } }  private static void deployapp(container container) throws exception {     jaxrsarchive app = shrinkwrap.create(jaxrsarchive.class);      app.as(datasourcearchive.class).datasource("scheduler", (ds) -> {         ds.connectionurl("jdbc:mysql://localhost:3306/scheduler");         ds.drivername("mysql");         ds.username("root");         ds.password("");     });      app.addaswebinfresource(new classloaderasset("meta-inf/persistence.xml", schedulermain.class.getclassloader()),             "classes/meta-inf/persistence.xml");      app.addaslibrary(container.createdefaultdeployment());     app.addalldependencies();      container.deploy(app); } } 

schedulerestresource:

@applicationscoped @path("/schedule") public class schedulerestresource {      @inject     private schedulercontroller schedulercontroller;      @inject     private schedulebean schedulebean;      @post     @path("/job")     @consumes(mediatype.application_json)     public void schedule(myschedule schedule) throws ioexception {         list<myschedule> schedules = schedulebean.getallschedules();         system.out.println(schedules.tostring());         schedulercontroller.buildschedule(schedule);     } } 

schedulebean:

import java.util.arraylist; import java.util.arraylist; import java.util.list;  import javax.ejb.stateless; import javax.persistence.entitymanager; import javax.persistence.persistencecontext;  import de.fszm.scheduler.entities.myschedule;  @stateless public class schedulebean {      @persistencecontext(unitname = "scheduler")     private entitymanager em;      public list<myschedule> getallschedules() {         system.out.println("getallschedules");          list<myschedule> schedules = new arraylist<>();          if (em != null) {             schedules = em.createnamedquery("schedule.getallschedules",     myschedule.class).getresultlist();         } else {             system.out.println("em null");         }          return schedules;     } } 

persistence.xml:

<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="scheduler" transaction-type="jta">      <provider>org.hibernate.ejb.hibernatepersistence</provider>      <jta-data-source>java:jboss/datasources/scheduler</jta-data-source>      <properties>         <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/scheduler"/>         <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.driver"/>         <property name="hibernate.connection.username" value="root"/>         <property name="hibernate.connection.password" value=""/>         <property name="hibernate.archive.autodetection" value="class"/>         <property name="hibernate.show_sql" value="true"/>         <property name="hibernate.format_sql" value="true"/>         <property name="hibernate.hbm2ddl.auto" value="drop-and-create"/>     </properties> </persistence-unit> 

pom.xml:

<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>...</groupid> <artifactid>scheduler</artifactid> <version>0.0.1-snapshot</version> <name>scheduler</name> <packaging>jar</packaging>  <properties>     <version.swarm>1.0.0.beta6</version.swarm>     <version.mysql>5.1.6</version.mysql> </properties>  <dependencymanagement>     <dependencies>         <dependency>             <groupid>org.wildfly.swarm</groupid>             <artifactid>bom</artifactid>             <version>${version.swarm}</version>             <type>pom</type>             <scope>import</scope>         </dependency>     </dependencies> </dependencymanagement>  <dependencies>     <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>undertow</artifactid>     </dependency>      <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>jaxrs</artifactid>     </dependency>      <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>ejb</artifactid>     </dependency>      <dependency>         <groupid>org.hibernate.javax.persistence</groupid>         <artifactid>hibernate-jpa-2.1-api</artifactid>         <version>1.0.0.final</version>     </dependency>      <dependency>         <groupid>javax.enterprise</groupid>         <artifactid>cdi-api</artifactid>         <version>1.2</version>     </dependency>      <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>jaxrs-weld</artifactid>     </dependency>      <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>datasources</artifactid>     </dependency>      <dependency>         <groupid>mysql</groupid>         <artifactid>mysql-connector-java</artifactid>         <version>${version.mysql}</version>     </dependency>  <!-- <dependency>         <groupid>org.wildfly.swarm</groupid>         <artifactid>wildfly-swarm-ejb</artifactid>         <version>1.0.0.alpha5</version>     </dependency> -->  </dependencies>  <build>     <plugins>         <plugin>             <groupid>org.wildfly.swarm</groupid>             <artifactid>wildfly-swarm-plugin</artifactid>             <version>${version.swarm}</version>             <configuration>             </configuration>             <executions>                 <execution>                     <id>package</id>                     <goals>                         <goal>package</goal>                     </goals>                 </execution>             </executions>         </plugin>          <plugin>             <groupid>org.apache.maven.plugins</groupid>             <artifactid>maven-compiler-plugin</artifactid>             <version>2.3.1</version>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>      </plugins> </build> 


Comments