글래스 피쉬 4를 사용하고 있습니다. 그리고 WAR와 JAR (EJB 포함)이있는 EAR을 가지고 있습니다.동일한 EAR 내의 WAR에서 EJB 호출하기
내 WAR에서 EJB를 호출하고 싶지만 로컬 또는 원격 인터페이스를 사용해야하는지 잘 모르겠습니다.
@Stateless
public class Test implements TestLocal {
@Override
public void testing() {
}
}
그리고 내 로컬 : 내 WAR 내부
@Local
public interface TestLocal {
void testing();
}
이 내가 웹 서비스를하고 내 JAR 내부
, 내 콩은 다음과 같습니다 다음과 같습니다 :
@WebService(serviceName = "TestWS")
public class TestWS {
private @EJB TestLocal testBean;
@WebMethod(operationName = "test")
public String test() {
testBean.test();
}
}
두 가지 모두는 EAR에 패키지되어 있습니다. 첫째
Warnung: javax.ejb.AccessLocalException: Client not authorized for this invocation at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1895) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:210)
:
- 이는 EJB를 호출하는 올바른 방법인가
내 WebService에 메서드를 호출
가 나는 AccessLocalException를 얻을. EAR 내부의 WAR는 포함 된 JAR의 로컬 인터페이스를 사용할 수 있습니까? - 그렇다면 누군가 내가 뭘 잘못하고 있는지 알아? 어떤 종류의 보안 구성을 설정해야합니까?
EJB에 대한 보안 구성 설정이 있습니까? – JamesB