2011-05-08 4 views
2
이미 몇 시간이 하나 벽에 머리를 타격 한 나는 이런 일이 왜 단서가 그나마

해결되지 J 보스 (6)와 EL에 JSF 1.2 ... JBoss 4.2.3에서 JBoss 6 Final로 이동하는 과정을 시작했습니다. 우리는 JSF 1.2를 사용하고 있습니다. 필자는 새로운 JBoss (주로 WEB-INF/lib에서 일부 JAR을 제거하고 web.xml을 약간 튜닝 함)에 응용 프로그램을 성공적으로 적용했으며 응용 프로그램은 멋지게 시작되었습니다.</p> <p>최근에 우리가 표현

일부 EL 표현식은 해결되지 않고 다른 표현식은 해결되지 않는 것이 문제입니다. 또한 로그에 0 개의 예외 또는 경고가 표시됩니다.

JSF XML 구성 파일 중 하나에 정의 된 "mapContext"라는 bean이 있습니다. 그것은 잘 만들어지고 있습니다.

<h:inputHidden id="mapContextId" value="#{mapContext.webContextId}" /> 

및 렌더링 된 페이지에서이된다 : 내 JSF 페이지에서 내가 가진 JSF 태그가 잘 렌더링,

<input id="mapForm:mapContextId" type="hidden" name="mapForm:mapContextId" value="#{mapContext.webContextId}" /> 

당신이 볼 수 있듯이, 그러나 EL는 해석되지 않습니다.

server.log에 문제가 있음을 나타내는 로그가 없습니다.

JSF 1.2, JSTL 1.2, 제이 보스 (6), JDK 6

의 Web.xml :

<context-param> 
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name> 
    <param-value>Mojarra-1.2</param-value> 
</context-param> 

이 어떤 도움을 크게 감상 할 수있다! 라팔


자세한 내용 :

그럼 난 내 코드 및 구성을 doublechecked있다. 또한 JSF에서 사용하는 bean을 확인하기 위해 사용자 정의 변수 리졸버에 로깅을 추가했습니다. 결과가 이상합니다.

모든 나는 다른 출력을 내 JSF 페이지를 강화했으며, 지금과 같이 보입니다의

첫째 :

<h:inputHidden id="mapContextId1" value="#{mapContext}" /> 
<h:inputHidden id="mapContextId2" value="#{selectionPointSymbol.width}" />  
<h:inputHidden id="mapContextId" value="#{mapContext.webContextId}" />  
<h:inputHidden id="mapContextId3" value="#{selectionPointSymbol4.width}" /> 

와 같은 렌더링 :

<input type="hidden" name="mapForm" value="mapForm" /> 
<input id="mapForm:mapContextId1" type="hidden" name="mapForm:mapContextId1" value="#{mapContext}" /> 
<input id="mapForm:mapContextId2" type="hidden" name="mapForm:mapContextId2" value="#{selectionPointSymbol.width}" /> 
<input id="mapForm:mapContextId" type="hidden" name="mapForm:mapContextId" value="#{mapContext.webContextId}" /> 
<input id="mapForm:mapContextId3" type="hidden" name="mapForm:mapContextId3" value="#{selectionPointSymbol4.width}" /> 

내가 로그를 확인하고 내가 할 수있는 mapContext가 비표준 JSF 태그로 잘 해석되고 있는지 확인하십시오.

12:27:24,911 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver asked to resolve: mapContext 
12:27:24,911 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver delegated to: [email protected] and resulted with: [email protected] 
12:27:24,927 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver asked to resolve: mapContext 
12:27:24,927 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver delegated to: [email protected] and resulted with: [email protected] 

n 로그).

그러나 표준 태그에서만 사용되는 selectionPointSymbol 또는 selectionPointSymbol4 (해당 Bean이 정의되지 않았습니다!)에 대한 단일 로그는 없습니다. 아직

서버 로그에서 오류 또는 경고 :(


자세한 내용 : 간단한 테스트.문제를 지적하는 로그가 없기 때문에, 무슨 일이 일어나고 있는지

<html> 
    <head> 
    <title>Megabit Mb_GIS WWW</title> 

    <link rel="stylesheet" title="base" href="/mb_gis_webmap/css/base-style.css" type="text/css" media="screen" /> 
    <style type="text/css"> 
     body { overflow:auto; } 
    </style> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/prototype.js"></script> 
    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/scriptaculous/scriptaculous.js?load=effects"></script> 
    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/ext/ext-prototype-adapter.js"></script> 
    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/ext/ext-all.js"></script> 

    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/mb_errors.js"></script> 
    <script type="text/javascript" language="Javascript" src="/mb_gis_webmap/js/esri_core.js"></script> 
    <script type="text/javascript" language="Javascript" src="/mb_gis_webmap/js/mapviewer.js"></script> 
    <script type="text/javascript" language="javascript" src="/mb_gis_webmap/js/ExternalClient.js"></script> 
    <script type="text/javascript" language="Javascript" src="/mb_gis_webmap/js/index_init.js"></script> 
    </head> 

    <body> 

    <!-- tabelka ładowania --> 
    <div id="loading_table_container" style="position:absolute; text-align:center; left:0; top:0; width:100%; height:100%; z-index:20000; background-color:white;"> 
     <table id="loading" style="z-index:20001;" height="100%" width="100%"> 
      <tr> 
       <td align="center" valign="middle" style="font-size: 12px"> 
        <img src="/mb_gis_webmap/images/loading_big.gif" alt="Loading..." align="absmiddle"/><br/><br/> 
        #{msg.welcome_page_map_client_loading}<span id="mapContextId2">#{selectionPointSymbol.width}</span> 


       </td> 
      </tr> 
     </table> 
    </div>   
    <!-- tabelka ładowania --> 

    <script> 
     var url = "/mb_gis_webmap/mapviewer.jsf?msid=1000005&uid=1&cid=1&mapContextId=1"; 
     var refresh = "<meta http-equiv=\"refresh\" content=\"1000; URL=" + url + "\" />"; 
     document.writeln(refresh); 
    </script> 
    </body> 
</html> 

아직 단서 :

JSF 페이지 :

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ page import="java.util.*" %> 
<%@ page buffer="96kb" autoFlush="true" %> 
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 

<f:view> 
<f:loadBundle basename="mb.ags.res.AGSClient" var="msg"/> 
<html> 
<head> 
<title>*********</title> 
<link rel="stylesheet" title="base" href="/mb_gis_webmap/css/base-style.css" type="text/css" media="screen" /> 
<style type="text/css"> 
    body { overflow:auto; } 
</style> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
</head> 
<body> 

<!-- tabelka ładowania --> 
<div id="loading_table_container" style="position:absolute; text-align:center; left:0; top:0; width:100%; height:100%; z-index:20000; background-color:white;"> 
    <table id="loading" style="z-index:20001;" height="100%" width="100%"> 
     <tr> 
      <td align="center" valign="middle" style="font-size: 12px"> 
       <img src="/mb_gis_webmap/images/loading_big.gif" alt="Loading..." align="absmiddle"/><br/><br/> 
       <h:outputText value="#{msg.welcome_page_map_client_loading}"/> 
       <h:outputText id="mapContextId2" value="#{selectionPointSymbol.width}" /> 
      </td> 
     </tr> 
    </table> 
</div>   
<!-- tabelka ładowania --> 

<script> 
    var url = "<%= redirectUrl %>"; 
    var refresh = "<meta http-equiv=\"refresh\" content=\"1000; URL=" + url + "\" />"; 
    document.writeln(refresh); 
</script> 
</body> 
</html> 
</f:view> 

는 다음과 같이 표현된다.

답변

4

다음 사항의 확인 :

  • 당신은 /WEB-INF/libel-*.jar 같은 servletcontainer 특정 라이브러리를 필요가 없습니다.
  • web.xml은 (JBoss 6에서 지원하는 것처럼) Servlet 3.0 사양을 준수한다고 선언되었습니다.
  • web.xml에는 com.sun.faces.expressionFactory의 컨텍스트 매개 변수가 포함되어 있지 않으므로 다른 EL 구현을 가리 킵니다.
+0

아, 고마워! web.xml에 오래된 스펙이 첨부되어 있었지만 여전히 2.4를 사용하고있었습니다! –

+0

반갑습니다. – BalusC

0

mapContext이 EL 스 니펫에 정의되어 있지 않으면 JSF는 빈 문자열을 자동으로 반환합니다.

mapContext가 올바르게 구성되었는지 확실합니까? 마이그레이션 프로세스에서 놓치기가 매우 쉽습니다.

+0

자세한 내용은 내 질문에 추가되었습니다. –

+0

콩을 그 이름으로 노출시켜야한다고 JSF에 어떻게 말했습니까? 모든 @Named 항목은 JSF 2.0까지 사용할 수 없습니다. –

+0

절대적인 기본 사항으로 이동하십시오. # {mapContext}가있는 단일 페이지는 bean toString으로 끝나야합니다. 거기에 휴식 지점을 넣어 확실합니다. –

관련 문제