2017-12-13 41 views
0

JAX-RS.EJB 트랜잭션 나는 어려운시기가 나는하지 처리되지 않은 예외 <br> 의 EJB 메소드가 반환 직후을 던질 때 발생하는 shuould 무엇을 문서화 <br> 을보고 알아내는 데

@Path("helloworld") 
    public class HelloWorld 
    { 

     @EJB 
     MyEJB myEJB; 

     @GET 
     @Produces("text/html") 
     public String doSomething() 
     { 
      myEJB.doSomethingMore(); 


      throw new RuntimeException("Oops"); 
     } 
} 

그런 경우 EJB가 DB 트랜잭션을 커밋합니까? 아니면 롤백합니까?

+0

여기 거래가 보이지 않습니다. – user1803551

답변

2

HelloWorld는 EJB가 아니므로 트랜잭션 경계가 myEJB.doSomethingMore()와 같습니다.

HelloWorld에서 RuntimeException을 throw하면 트랜잭션이 이미 커밋됩니다.

HelloWorld에서 transaciton 경계를 설정하려면 @Stateless를 HelloWorld 클래스에 추가하기 만하면됩니다.