2014-07-06 2 views
1

Message Driven Beans를 사용하고 있습니다. 그것들은 모으기 때문에 많은 경우가 있습니다. onMessage 메서드에서 JAXB unmarshaller를 사용해야합니다. 내가 원하는 예를 들어, init 메소드에 Unmarshaller에 인스턴스를 생성하는 것입니다 :이 시나리오에서 동시성 문제에 대해Message Bean의 JAXB unmarshaller

public class MyMDB implemetns MessageListener { 
    private Unmarshaller unmarshaller; 

    @PostConstruct 
    public void init() { 
     unmarshaller = JAXBContext.newInstance(...) 
    } 

    public void onMessage(Message message) { 
     // use unmarshaller 
    }  
} 

귀찮게 하는가? 내가 아는 한 unmarshaller는 스레드로부터 안전하지 않습니다. 여기에 ThreadLocal을 사용해야합니까?

답변

0

Unmadshaller 작성하는 것은 가볍습니다. 스레드 안전 JAXBContext에 대한 참조를 보유한 다음 필요할 때마다 Unmarshaller을 새로 작성할 수 있습니다.