0

データベースからすべてのレコードを削除するジョブを作成しようとしています。このジョブは、私の Web サービスと共にデプロイされます。Web サービスでは、EntityManager に簡単にアクセスでき、これまでのところ問題はありません。しかし、スケジューラで EntityManager にアクセスしようとすると、NullPointerException が発生します。

@Service
public class DeletionJob {

   @PersistenceContext(unitName = "my_pu")
    private EntityManager em;

    @Scheduled(fixedDelay=10000)
    public void run() {
        boolean flag = false;
        TypedQuery<Abc> query
                = em.createNamedQuery("deleteAll",ABC.class);
    }
}

これは私のクラスですが、run メソッドの 2 行目に例外が発生します。

@EnableWebMvc
@Configuration
@EnableScheduling
@ComponentScan({ "com.jobs.*" })
@javax.ws.rs.ApplicationPath("webresources")
public class AppConfig extends Application {
     @Bean
     public DeletionJob myDeletionJob() {
         return new DeletionJob();
     } 
    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver 
                          = new InternalResourceViewResolver();
        return viewResolver;
    }
        @Bean
        public REST getService(){
            return new REST(); 
        }
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
        addRestResourceClasses(resources);
        return resources;
    }


    /**
     * Do not modify addRestResourceClasses() method.
     * It is automatically populated with
     * all resources defined in the project.
     * If required, comment out calling this method in getClasses().
     */
    private void addRestResourceClasses(Set<Class<?>> resources) {
        resources.add(com.service.REST.class);
        // Tried to include deletionjob class here but, no luck still the same.
    // resources.add(com.jobs.DeletionJob.class);
    }
}

構成ファイルがありません。注釈を使用しているため。しかし、私は何が間違っているのか分かりません。私のすべてのサービスは正常に機能しており、データベース関連のトランザクションに問題はありません。

編集:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="my_pu" transaction-type="JTA">
    <jta-data-source>ds</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
        <property name="eclipselink.logging.level" value="FINE"/>
    </properties>
  </persistence-unit>
</persistence>
4

0 に答える 0