2

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가 있습니다. 차이점은 QueryEngineLiteQueryEngine이 HBASE 데이터베이스에 연결하는 동안 엔터프라이즈 응용 프로그램에 자원으로 번들되는 로컬 덤프 파일을 사용한다는 것입니다. 둘 다 시작할 때로드되며 연결을 초기화하는 주석이 달린 메서드가 있습니다. 그중 하나만 배포 된 응용 프로그램에서 QueryEndpoint이 사용하고 다른 하나는 주석 처리 된 StartupPostConstruct 주석으로 둘러 쌓여 있습니다. 나는 이것을 처리 할 수있는 더 나은 방법이 있다는 것을 알고 있으며, 현재의 솔루션은 나쁘다.하지만 그것은 프로젝트의 미래 단계에서 바뀔 것이다. 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 페이지 일뿐입니다. 웹 서비스와 같은 응용 프로그램의 다른 부분은 두 엔진 모두에서 완벽하게 작동합니다. 귀하의 도움에 미리 감사드립니다.

+0

웹상의 일부 링크에서 제안한대로 배포/배포를 수행했습니다. 불운. –

답변

2

업데이트 : 배포 된 응용 프로그램으로 도메인을 중지하고 다시 시작하여 사전 배포 된 응용 프로그램이 자동으로 시작되도록했습니다. 문제가 없어졌으며 아무 문제없이 index.xhtml JSF 페이지를 볼 수 있습니다.

다른 도메인을 만들고 문제를 재현하여이를 확인했습니다. index.xhtml은 첫 번째 배포 후 HTTP 403을 반환합니다. 도메인을 다시 시작하면 문제가 해결됩니다. 왜?


Glassfish 문제 추적기에 버그가 있습니다. http://java.net/jira/browse/GLASSFISH-19064

+0

매우 똑같은 문제가있었습니다. 투표했습니다! – igr

+0

가능한 다른 해결책을 찾으셨습니까? –

+1

불행히도, 글래스 피시를 다시 시작해야한다고 간단히 제기했습니다. 희망 glassfish 4 곧 출시 될 예정이다;) – igr