2017-01-25 14 views
0

보내는 다른 웹 프로젝트로 리디렉션 :나는 다음과 같은 코드를 사용하여 동일한 작업 공간에서 다른 프로젝트로 리디렉션하고 매개 변수

String urlVolver = "https://localhost:8443/wap/project2/registro/registrarProyect2.page?idRegistro=1648&control=gestionarGestionarRegistro"; 
FacesContext context = FacesContext.getCurrentInstance(); 
context.getExternalContext().redirect(urlVolver); 

내가 다른 프로젝트에 리디렉션 내가 그것을 작동 매개 변수를 보낼 수는 없지만, 나는 다음과 같은 예외를 얻을 해당 뷰의 컨트롤러에 매개 변수를 보낼 때

Context Path: 
/wap/project2 

Servlet Path: 
/registro/registrarProyect2.page 

Path Info: 
null 

Query String: 
idRegistro=1648&control=gestionarGestionarRegistro 

Stack Trace 
java.lang.UnsupportedOperationException 
java.util.AbstractList.add(AbstractList.java:148) 
java.util.AbstractList.add(AbstractList.java:108) 
org.jasig.cas.client.util.URIBuilder.addParameter(URIBuilder.java:402) 
org.jasig.cas.client.util.CommonUtils.constructServiceUrl(CommonUtils.java:310) 
org.jasig.cas.client.util.AbstractCasFilter.constructServiceUrl(AbstractCasFilter.java:104) 
org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:159) 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 
org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:97) 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) 
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) 
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) 
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) 
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) 
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248) 
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77) 
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167) 
io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 
+0

예외가 아닙니다. 전체 Exception을 게시 할 수 있습니까? 아마도 stacktrace의 일부로? –

+0

좋아,이게 다 예외예요 –

+0

프로젝트간에 인증을 위해 CAS 서비스를 사용하는 것처럼 보입니까? 문제는 CAS 서비스가 수정할 수없는 목록을 사용하고 URL에 매개 변수를 추가 할 때 CAS가 해당 목록에 URL을 추가하려고한다는 것입니다. –

답변

0

우리는 내가 생각하기에, 해결책을 찾기 오류 처리 요청은하지 않습니다 가장 권장 할 만하지만 작동하지만 여러 애플리케이션이이를 사용하고 있기 때문에 CAS 구성을 수정할 수 없었습니다.이 구성은 우리 팀에 의존하지 않습니다.

내가 언급 한 것을 잊어 버린 또 다른 동작은 처음에 페이지 https://localhost:8443/wap/project2/registro/registrarProyect2.page을로드하고 매개 변수를 사용하여 리디렉션을하면 페이지를로드하는 데 문제가 없다는 것입니다.

그래서 탐색 케이스로 숨겨진 iframe에 페이지를로드합니다.

<div id="map" style="display:block; visibility:hidden"> 
    <iframe src="/registro/registrarProyect2"> 
    </iframe> 
</div> 

이 iframe을로드 한 후 매개 변수가있는 페이지로 리디렉션 할 수 있습니다.