0

Seam と Hibernate を使用し、Glassfish にデプロイされている既存の Java EE アプリケーションの統合テストを作成しようとしています。

しかし、テストは現在、最初から Seam の開始に失敗しています。これは、Quartz Scheduler コンポーネントをインスタンス化できないことが原因のようです - 以下のコードを参照してください。例外スタック トレースも以下にあります。

どんな助けでも大歓迎です...

これらは不必要な詳細かもしれませんが、ここで説明されているように、(TestNG ではなく) JUnit を使用してテストを作成しました。このテストは AbstractSeamT​​est を拡張し、ここで説明されているように、ComponentTest をインスタンス化し、testComponents をオーバーライドする @Test メソッドを備えています。アプリケーションは、Maven の統合前フェーズで Cargo を使用して既存のローカル Glassfish インスタンスにデプロイされ、Failsafe プラグインを使用してテストが実行されます。

InitialiseQuartz クラス:

@Name("initialiseQuartz")
@Scope(ScopeType.APPLICATION)
@Startup
public class InitialiseQuartz {

    private QuartzTriggerHandle qth;

    @In(create=true) 
    private EmailService emailService;

    @Create
    public void startSchedule() {
        System.out.print("Schedule started");
        qth = emailService.generateDailyEmail("0 0 7 * * ?");
    }

    @Destroy
    public void stopSchedule() {
        try {
            qth.cancel();
        } catch (SchedulerException se) {

        }
    }
}

スタックトレース:

org.jboss.seam.InstantiationException: Could not instantiate Seam component: initialiseQuartz
    at org.jboss.seam.async.AbstractDispatcher.extractAndValidateParameters(AbstractDispatcher.java:171)
    at org.jboss.seam.async.AbstractDispatcher.createTimerSchedule(AbstractDispatcher.java:113)
    at org.jboss.seam.async.ThreadPoolDispatcher.scheduleInvocation(ThreadPoolDispatcher.java:56)
    at org.jboss.seam.async.ThreadPoolDispatcher.scheduleInvocation(ThreadPoolDispatcher.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
    at org.jboss.seam.async.ThreadPoolDispatcher_$$_javassist_seam_3.scheduleInvocation(ThreadPoolDispatcher_$$_javassist_seam_3.java)
    at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:40)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
    at uk.police.kent.optica.schedule.EmailService_$$_javassist_seam_2.generateDailyEmail(EmailService_$$_javassist_seam_2.java)
    at uk.police.kent.optica.schedule.InitialiseQuartz.startSchedule(InitialiseQuartz.java:26)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
    at uk.police.kent.optica.schedule.InitialiseQuartz_$$_javassist_seam_1.startSchedule(InitialiseQuartz_$$_javassist_seam_1.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2275)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2198)
    at org.jboss.seam.Component.newInstance(Component.java:2158)
    at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
    at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
    at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:143)
    at org.jboss.seam.init.Initialization.init(Initialization.java:744)
    at org.jboss.seam.mock.AbstractSeamTest.startSeam(AbstractSeamTest.java:929)
    at com.ipl.rdhi.acceptance.RdhiAdapterIT.setUpBeforeClass(RdhiAdapterIT.java:118)
4

1 に答える 1

0

ウィッチシーム版使ってる?

このエラーは通常、一部の依存関係をコンポーネントに注入できない場合に発生します。Bean EmailService は、テストケースでの成功から始まりますか?

于 2013-01-23T18:33:00.667 に答える