I가이 같은 주입 EJB 사용하여 내 index.xhtml
JSF 페이지에 연결 관리 빈 :글래스 피시는 403 HTTP 응답 코드를 반환 JSF 페이지에 대한 액세스를 거부
// Code inside managed bean
@EJB
QueryEndpointLocal queryEndpoint;
public void search() {
//...
SearchResult result = queryEndpoint.search(query, resultFormat);
//...
}
QueryEndpoint 차례로라는 이름의 또 다른 EJB의 활용을 QueryEngine
:
// Code inside QueryEndpoint
@EJB
QueryEngine queryEngine;
현재, 나는 QueryEngineLite
이름 QueryEngine
과 매우 유사한 다른 EJB가 있습니다. 차이점은 QueryEngineLite
은 QueryEngine
이 HBASE 데이터베이스에 연결하는 동안 엔터프라이즈 응용 프로그램에 자원으로 번들되는 로컬 덤프 파일을 사용한다는 것입니다. 둘 다 시작할 때로드되며 연결을 초기화하는 주석이 달린 메서드가 있습니다. 그중 하나만 배포 된 응용 프로그램에서 QueryEndpoint
이 사용하고 다른 하나는 주석 처리 된 Startup
및 PostConstruct
주석으로 둘러 쌓여 있습니다. 나는 이것을 처리 할 수있는 더 나은 방법이 있다는 것을 알고 있으며, 현재의 솔루션은 나쁘다.하지만 그것은 프로젝트의 미래 단계에서 바뀔 것이다. HBase와 통신하기 위해 AppServer에서 관리하는 연결 풀을 활용할 계획이 있지만 현재 HBASE의 Java API를 사용하는 라이브러리가 연결을 처리합니다.
이제 Lite EJB를 사용할 때 아무런 문제가 없습니다. 인터페이스가 작동하고 웹 서비스가 작동하며 모든 것이 잘됩니다. 나는 HBase를-묶여 EJB (QueryEngine
)를 사용하여 바로 그 때, 글래스 피시는 index.xhtml 요청에 HTTP 403 오류로 응답하고 다음 줄은 server.log에 삽입 얻을 : 이런 내가 왜 아무 생각이
INFO: JACC Policy Provider:Failed Permission Check: context (" App/App-war_war ") , permission (" ("javax.security.jacc.WebUserDataPermission" "" "GET") ")
INFO: JACC Policy Provider:Failed Permission Check: context (" App/App-war_war ") , permission (" ("javax.security.jacc.WebUserDataPermission" "" "GET:CONFIDENTIAL") ")
INFO: JACC Policy Provider:Failed Permission Check: context (" App/App-war_war ") , permission (" ("javax.security.jacc.WebUserDataPermission" "/favicon.ico" "GET") ")
INFO: JACC Policy Provider:Failed Permission Check: context (" App/App-war_war ") , permission (" ("javax.security.jacc.WebUserDataPermission" "/favicon.ico" "GET:CONFIDENTIAL") ")
그리고 그것이 어떻게 고쳐질 수 있는지. 첫 번째 엔진 EJB가 사용될 때 작동하지 않는 것은 JSF 페이지 일뿐입니다. 웹 서비스와 같은 응용 프로그램의 다른 부분은 두 엔진 모두에서 완벽하게 작동합니다. 귀하의 도움에 미리 감사드립니다.
웹상의 일부 링크에서 제안한대로 배포/배포를 수행했습니다. 불운. –