바인드되지 않은 Faces Client 구성요소가 있는 Faces JSP를 서버에서 실행할 수 없습니다. Faces Client 구성요소를 서버에서 실행할 수 있도록 클라이언트 데이터 오브젝트에 바인드해야 합니다.
이 문제는 내부 WDO 코드에서 NullPointerExceptions로 인해 발생합니다. 이 문제를 해결하려면, 데이터베이스에서 널 값을 기본값으로 바꾸거나 서버를 WAS 6.0으로 업그레이드하십시오. 업그레이드할 경우, 이주 안내서의 'Faces Client 구성요소와 함께 JavaServer Faces 자원 이주' 섹션을 따르십시오.
참고: 빈 관계형 레코드로 작성된 클라이언트 데이터가 있는 Faces JSP도 같은 이유로 WAS 5.1에서 실행되지 않습니다. 이 문제에 대해 손쉬운 해결책은 없습니다.
"선택한 오브젝트를 대상 구성요소에서 루트로 설정" 이벤트 핸들러의 대상 구성요소 이름이 이벤트 핸들러 스니펫 작성 후 바뀔 경우, JavaScript가 올바르지 않게 작동됩니다. 이 문제를 해결하려면, 스니펫을 삭제한 후 다시 작성하십시오.
파일 업로드 및 다운로드 기능을 구현하는 Faces 구성요소는 포틀렛에서 지원되지 않습니다. 이 Faces 구성요소는 다음을 포함합니다.
- 파일 업로드
- BLOB(또는 byte[]) 데이터 소스에 바인드된 경우 이미지, 링크 및 매체 재생기
데이터 그래프에서 레벨이 2 이상인 관계형 레코드 목록에 바인드된 데이터 눈금에 행을 추가한 후에 Faces JSP 파일을 제출하면, java.lang.IllegalArgumentException이 발생합니다: 'CUSTOMERS'의 기능 'CUSTOMERS_ORDERS'는 포함 관계 아닙니다.
이것은 Faces 클라이언트가 갱신을 핸들하는 방식의 제한입니다. SDO에서, 모든 관계는 "DatagraphRoot"에 포함되며(containment=true) 각 관계는 루트에 포함된 다른 관계를 참조(containment=false)합니다. faces client DiffHandlers는 항상 새 오브젝트를 "컨테이너" 보다는 "상위"에 추가하려고 합니다.
이 문제점의 해결책은 레벨 1 관계로 새 행으로 갱신되는 관계형 레코드 목록을 작성하는 것입니다. 예를 들어, CUSTOMER가 소유하는 ORDERS 테이블에 행을 추가하려는 경우, 관계 CUSTOMER -> ORDERS를 작성한 후 행을 ORDERS에 추가하는 대신 관계형 레코드 목록 ORDERS를 작성하고 행을 ORDERS에 추가합니다.
열에 입력 구성요소가 있는 데이터 테이블(예를 들어, 행의 특성이 콜렉션임) 안에서 중첩된 데이터 테이블이 있는 경우, 데이터 모델은 제대로 갱신되지 않습니다.
페이지 템플리트에서 파생된 Faces JSP 파일에 데이터를 놓을 때 생성된 태그의 위치가 올바르지 않을 수 있습니다. 템플리트에서 페이지 본문 안에 두 개 이상의 컨텐츠 영역이 있는 경우, 페이지 데이터 보기나 팔레트의 데이터 드로어로부터 데이터를 끌어다 놓으면 항상 첫 번째 컨텐츠 영역에 새 태그가 생성됩니다. 원하는 대상이 해당 컨텐츠 영역에 없는 경우, 소스 모드로 전환하십시오. 그런 다음 생성된 소스를 잘라내서 올바른 위치에 붙여넣으십시오. 에워싸는 h:form 태그(있는 경우)를 포함하여 새로운 모든 태그를 선택했는지 확인하고 원하는 컨텐츠 영역의 hx:scriptCollector 태그 내부에 제대로 붙여넣었는지 확인하십시오.
원래 WSAD 5.1.2를 사용하여 개발된 프로젝트에 대해 작업할 때, 사용자에게 프로젝트에서 Faces 자원을 이주하도록 요청하는 프롬프트가 표시될 수 있습니다. 사용자가 YES로 응답하는 경우, Faces 런타임은 자동으로 최신 레벨로 갱신되지만, WDO가 데이터 액세스에 사용된 경우, 추가 구성을 수동으로 수행할 필요가 있습니다.
- 원래 프로젝트에서 임시 Faces JSP 파일을 새로 작성하십시오. (파일 > 신규 > Faces JSP 파일을 누르십시오. 도움을 받으려면 온라인 도움말을 참조하십시오.)
- 팔레트의 데이터 드로어에서 해당 페이지로 관계형 레코드 구성요소를 끌어오십시오. 기존 메타데이터를 다시 사용하도록 선택하고 나열된 기존 WDO .xml 파일 중에서 파일을 선택하십시오. 이 프로세스는 이 프로젝트에서 WDO를 계속 사용하도록 필요한 구성을 생성합니다.
- 임시 JSP 파일을 삭제하십시오.
자세한 정보는 제품 이주 안내서를 참조하십시오.
사용자가 페이지에 여러 개의 inputText 필드를 가지고 있는 경우, inputText 필드의 유효성 검증 페이지가 올바르게 갱신되지 않을 수도 있습니다. inputText 필드가 다른 변환기 서브 태그를 갖는 경우 이 문제가 발생합니다. 예를 들어, 하나의 inputText 필드가 convertNumber 변환기를 사용하는데 다른 필드에 convertDateTime 변환기가 있을 경우, 유효성 검증 페이지는 태그 사이에 전환될 때 올바르게 새로 고쳐지지 않습니다. 두 가지의 가능한 해결책이 있습니다. 소스 모드로 전환한 후 하위 validation 또는 helper 태그를 누르십시오(이때 페이지가 새로 고쳐집니다). 다른 방법은 JSP를 닫은 후 다시 여는 것입니다.
EGL 클라이언트에 대해 생성된 DiffHandler에 중첩 유형 참조에 대해 올바르지 않은 구문이 들어 있습니다. 이 문제를 해결하려면, 클라이언트-데이터 조정자 클래스를 편집하여 올바른 구문을 사용하십시오. 달러 부호($) 대신 마침표(.)를 사용하십시오. 예를 들어, 다음과 같은 코드를 가진 경우,
if (_Root instanceof pagehandlers.overdueaccounts$COMPANYNAME)
다음과 같이 변경하십시오.if (_Root instanceof pagehandlers.overdueaccounts.COMPANYNAME)
기존 SDO/WDO 클라이언트 데이터를 재사용하는 클라이언트 데이터를 작성할 때, WDO/SDO 메타데이터 파일 및 모델 이름도 재사용하십시오. 페이지 데이터 보기에서 WDO/SDO 작성 시, "기존 레코드 또는 레코드 목록에서 메타데이터 정의 재사용"을 선택하십시오. 그런 다음, 재사용하려는 SDO의 메타데이터 파일을 찾아 선택하십시오.
이 문제를 해결하려면, 모든 JSF 및 JSF 클라이언트 제어사항이 동일 포털 페이지에서 사용된 모든 포틀렛에 대해 고유 ID를 갖도록 하십시오. 포털 페이지가 중복 ID를 가지고 있는 알 수 없는 포틀렛을 사용할 경우, 충돌 가능성이 있습니다. ID가 고유한지 확인하려면 ID의 일부로 JSP 이름을 포함하도록 권장합니다.
이 문제에 대해 알려진 해결책이 없습니다. 겹쳐지지 않도록 하려면 레이블 사용을 최소화하는 것이 좋습니다.
해결책은 없습니다. 포털의 트리 보기에서 사용자 정의 열기 및 닫기 아이콘을 사용하지 마십시오.
y축에서 근접한 일련의 값들을 사용하여 그리면 기본 형식을 사용하기 때문에 정밀도 차이가 없어질 수 있습니다. 이러한 정밀도 차이의 부족으로 값이 반복될 수 있습니다. 이 문제를 예방하려면, 적절한 사용자 정의 숫자 형식을 선택하고 기본값을 사용하지 마십시오.
이 문제를 해결하려면, 그래프의 크기를 증가시키십시오.
데이터 눈금의 머릿글 및 바닥글은 다음과 같은 시나리오에서는 표시되지 않습니다.
- 데이터 눈금이 빈 관계형 목록에 바인드된 경우
- 데이터 눈금에 프로그램 방식으로 항목을 추가하는데 항목 수가 데이터 눈금 높이를 초과할 경우
두 개의 다른 서버 시스템에서 클라이언트 및 웹 서비스를 호스트할 경우에 웹 서비스 호출이 실패합니다. Macromedia 웹 사이트에서 cross-domain 문제에 대한 일부 솔루션을 제안했지만 알려진 해결책은 없습니다. 동일 서버에서 웹 서비스 서버와 클라이언트 둘 다를 호스트하도록 하십시오.
사용자 프로젝트에서 이 경고를 제거하려면, javasource 폴더, 사용자 프로젝트 또는 경고가 있는 패키지 중 하나를 마우스 오른쪽 단추로 누르십시오. 그런 다음 컨텍스트 메뉴에서 소스 > 가져오기 구성을 선택하십시오.
동일한 페이지에 다중 클라이언트 데이터를 포함하는 페이지로 Faces Client 구성요소를 놓을 때 이 오류를 수신할 수 있습니다. 이 문제를 해결하려면, JSP의 소스 보기로 전환한 후 모든 <odc:clientData> 태그를 <h:form> 태그 바로 아래로 이동시키십시오.
페이지에 트리 구성요소를 놓거나 트리 구성요소에 대한 소스를 잘라서 페이지에 붙여넣을 경우, <odc:tree> 태그의 상위로 <p> 태그가 잘못 작성될 수 있습니다. 이로 인해 결과 HTML 페이지에서 트리 구성요소가 잘못 렌더링됩니다. 이 문제를 해결하려면, <odc:tree> 태그를 에워싸는 <p></p> 태그를 삭제하십시오.
작은 그림 보기나 프로젝트 탐색기 보기에서 탭 패널로 이미지 파일을 놓을 수 없습니다. 패널 내에 이미지를 놓으려면 팔레트 보기의 HTML 태그 드로어에서 이미지를 끌어다 놓은 후 놓으려는 이미지 파일을 선택하십시오.
Faces Client 구성요소를 포함하는 프로젝트의 경우 (WebSphere Application Server V5.1에서 V6.0으로) 서버를 재지정하는 이주 안내서의 단계를 따른 이후에 끊어진 링크 경고를 수신할 수 있습니다. 이 경고를 수신하거나 WebSphere Application Server v6.0에서 페이지를 실행할 때 페이지가 올바르게 표시되지 않을 경우, 웹 프로젝트를 닫은 후 다시 여십시오.
내부 브라우저를 사용하여 서버에서 실행 시 읽기 전용인 것처럼 rich 문서 편집기가 작동합니다. 페이지가 처음 로드되거나 페이지를 서버에 제출한 후에 이 문제점이 발생할 수 있습니다. 이 문제를 해결하려면 외부 브라우저를 사용하십시오.
이 문제는 Faces 페이지에 대한 URL의 Faces 접두부와 페이지 자원(css 및 이미지)에 대한 상대 경로를 사용했을 때 발생합니다. 두 가지 방식으로 이 문제를 해결할 수 있습니다.
1) 페이지 자원에 대한 완전한 경로 이름을 사용하십시오.
2) .faces 확장자가 있으며 faces/ 접두부가 없는 Faces 페이지에 대한 URL을 사용하십시오. Faces 페이지는 Faces Servlet에 의해 핸들되어야 합니다. 프로젝트 web.xml 파일에서, 다음 두 개의 맵핑이 기본적으로 이 faces servlet에 추가됩니다.
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping><servlet-mapping>
Faces 확장자가 있는 파일이나 Faces 폴더 중 어떤 것도 실제로 존재하지 않습니다. 단지 이 파일이나 폴더를 Faces 페이지 URL의 일부가 되게 해야 합니다. page1.jsp를 주소 지정하기 위해, /faces/page1.jsp 또는 /page1.faces를 사용할 수 있습니다. 두 가지 모두 구성될 수 있습니다(예를 들어, 확장자로 .page를 사용할 수 있습니다).
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
데이터 눈금이 오직 하나의 열이 있는 관계형 레코드 목록에서 작성된 클라이언트 데이터에 바인드되면, 생성된 바인딩이 올바르지 않습니다. 예를 들어, 올바른 바인딩 {pc_Index1.surveys} 대신 #{pc_Index1.surveys[0].NAME}이 생성됩니다. 해결책은 JSP 소스를 수동으로 편집하여 여분의 색인 및 열 이름(위의 예에서 표시된 대로)을 제거하는 것입니다.
이 문제점은 작업공간 빌드 조작이 완료되지 않았으므로 발생된 것입니다. 모든 오류를 제거하려면 프로젝트 메뉴로 이동하여 정리...를 선택하십시오. 그런 다음, FacesClientTutorial 프로젝트를 정리하도록 선택하십시오. 정리를 수행하고 다시 빌드 조작을 완료하면 모든 오류가 사라집니다.
도움말 주제 "Faces Client 구성요소로 JavaServer Faces 자원 이주"의 일부 이전 버전에 다음 항목에 대한 정보가 누락되었을 수 있습니다.
이 정보가 누락된 경우, 첫 번째 CD의 루트나 전자 이미지의 disk1/migrate.html 아래에 있는 이주 안내서의 html 버전을 참조하십시오.
- WebSphere Application Server V5.1에서 V6.0으로 Faces Client 구성요소를 포함하는 프로젝트의 대상 서버를 변경할 때 발생할 수 있는 두 가지 문제점:
- 이미 생성된 클라이언트 데이터 조정자 클래스가 더 이상 컴파일되지 않습니다.
- WDO에 바인드된 트리 보기 Faces Client 구성요소가, 프로젝트의 대상 서버를 WebSphere Application Server V6.0으로 변경한 후에, 서버에서 실행하는 데 실패했습니다.
- Linux 플랫폼 또는 영어가 아닌 로케일에서의 작업 정보.
제출 시 JSF(JavaServer Face) 페이지의 컨텐츠가 유실되어 표시되는 문제점이 있습니다. 이것은 페이지의 상태가 유지보수되고 상대 경로(예: theme/stylesheet.css)로 지정된 페이지 자원(예: css 및 image 파일)에 대한 요청이 핸들되는 방식과 관련될 수 있습니다. 이 문제를 해결하려면 JSF 페이지에 대한 URL에 .faces 확장자 옵션을 사용해야 합니다. 예를 들어, JSF 페이지 myPage.jsp에 대한 URL은 /MyWebApp/myPage.faces입니다. 이 확장자는 프로젝트 web.xml 파일에서 정의됩니다. 다른 옵션은 클라이언트에 상태를 저장하도록 선택하는 것입니다.