請與我裸露@Inject在戰爭中,我是新來JEE6 ...NPE與來自JPA實用工具JAR
ENV:JBoss的7.1.1,JDK 1.7,WELD模塊升級到1.1.10(以防萬一)
我有一個JPA項目,我將其添加到WEB-INF \ lib目錄中。它包含實體管理器注入的我的實體和DAO對象。我使用自定義註釋來限定PersistenceContext,它是在Resources類中生成的。我在這個項目中運行了Arquillian測試,以確保它能正常工作。
我在JPA jar的\ META-INF \目錄下和war文件的\ WEB-INF \目錄下有一個beans.xml文件。我甚至把它印出來放在我的桌子上,仍然沒有幫助。
在我的war文件中我有一個類從JPA jar中注入一個DAO對象。它不工作,它的空。
我已經找到了jboss(沒有jpa jar)和CDI的例子,它的工作原理。
我找過的例子,但找不到任何與Jpa罐。任何人都可以指出我有一個jee6 web應用程序的例子,它帶有JPA實用程序jar,它使用註釋將某些東西從JPA jar注入war類中?
非常感謝您閱讀此請求。
--------------------附加信息-----------------
戰爭結構文件
META-INF
->maven
-->com.xyz
--->web
---->pom.properties
---->pom.xml
->MANIFEST.MF
WEB-INF
->classes
->lib
-->entities.jar
->beans.xml
->faces-config.xml
->web.xml
堆棧跟蹤: 22:23:12011 INFO [org.quartz.core.JobRunShell](DefaultQuartzScheduler_Worker-2)工作DEFAULT.extractDir扔了JobExecutionException:org.quartz.JobExecutionException:java.lang中.NullPointerException [請參閱nested exception:java.lang.NullPointerException] at com.xyz.asp.commsrv.scheduler.jobs.DirScanJob.execute(DirScanJob.java:149)[classes:] at org。 quartz.core.JobRunShell.run(JobRunShell.java:213)[quartz-2.1.7.jar:] at org.quartz.simpl.SimpleThreadPool $ WorkerThread.run(SimpleThreadPool.java:557)[quartz-2.1.7的.jar:] 引起:在com.xyz.asp.commsrv.scheduler.jobs.DirScanJob.execute(DirScanJob.java:140)顯示java.lang.NullPointerException [類:] ... 2更
這是注入了DAO對象的類。這是由JBoss的的ServletContextListener啓動時啓動石英調度工作:
@DisallowConcurrentExecution
@PersistJobDataAfterExecution
public class DirScanJob implements Job{
...
@Inject
FiletracksentHome ftsHome;
@Override
public void execute(JobExecutionContext context) throw JobExecutionException{
...
BigDecimal bd = ftsHome.nextId()
}
}
該類位於entities.jar:
@Stateless
public class FiletracksentHome{
@Inject
@DatabaseEntities
private EntityManager entityManager;
public BigDecimal nextId(){
...
}
}
你正在描述的應該工作。請發佈堆棧跟蹤。 – 2013-04-28 14:12:52
@John在確認這應該起作用後,我的問題可能在於注射部位。因爲我使用Quartz Scheduler ...我尋找並發現這個堆棧溢出的問題... [http://stackoverflow.com/questions/4812796/can-i-use-cdi-injection-into-quartz- scheduler-jobs]我需要深入挖掘,但希望儘快回覆您。一旦找到具體的東西,我會更新這個 – 2013-04-29 14:25:06
是的,您需要使用SO帖子中提到的quartz 2 cdi集成。 – 2013-04-29 14:36:33