Jersey と Spring を使用して、Web サービスのサーバー側クラスであり、spring-tx とのトランザクションの両方である Java クラスを作成したいと思います (各 Web サービス要求が db での作業を完全に終了するか、完全にロールバックするようにします)。データベースで作業します)。
でも、そんなことをすると……。
package com.test.rest
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
@Transactional
public class TestRestService implements TestRestServiceInterface {
...
}
TestRestService クラスは Spring によって Web サービス クラスとして登録されません。
私は<context:component-scan base-package="com.test.rest"/>
春の設定ファイルで使用して、com.test.restパッケージにWebサービスクラスを登録しています(例ではパッケージ名が変更されています)。
@Transactional を削除するか、TestRestService にインターフェイスを実装しない場合、クラスは Spring によって Web サービス クラスとして登録され、コードは機能します。
両方を持つ方法はありますか?
現在、sprint-tx、spring-jersey、spring-context 3.0.7、および jersey 1.0.3.1 を使用しています。