페이지 데이터 보기에서 레이아웃 해제 테이블을 포함하는 페이지로 끌어다 놓으려고 할 때 커서가 표시되지 않아서 끌어서 놓기가 불가능합니다.
페이지 데이터 보기에서 끌어서 놓기를 수행하려면, 먼저 팔레트에서 '텍스트 셀'을 선택한 후 레이아웃 해제 테이블에서 텍스트 셀을 추가하십시오. 그런 다음 페이지 데이터 보기에서 텍스트 셀로 끌어다 놓으십시오.
드라이버 관리자 연결을 사용하여 관계형 데이터베이스에 액세스하는(SDO 기능으로) 웹 응용프로그램을 전개하려고 할 때, 드라이버 jar이 자동으로 서버 클래스 경로에 추가되지 않습니다. 그래서 ClassNotFound 오류가 발생합니다.
현재, 데이터 소스 연결은 응용프로그램이 관계형 데이터베이스인 Cloudscape, DB2, SQL Server 및 Oracle에 액세스할 때마다 기본적으로 작성됩니다. 그러나 다른 데이터베이스의 경우(특히 Informix® & Sybase), 드라이버 관리자 연결이 작성되고 위에 설명된 문제가 발생합니다.
드라이버 관리자 연결이 작동되도록 하려면, 사용자가 직접 드라이버 jar 경로를 서버 클래스 경로에 추가해야 합니다. 이는 서버의 관리 콘솔을 실행하고 서버->응용프로그램 서버-><serverName>->Java 및 프로세스 관리->프로세스 정의->JVM(JavaVirtual Machine)->클래스 경로 아래에 클래스 경로 항목을 추가하여 수행할 수 있습니다.
제품은 현재 각 관계형 데이터 목록으로 갱신 메소드를 생성하지 않습니다. 다음은 데이터 목록 myList의 컨텐츠를 갱신하기 위해 조치에 놓을 수 있는 코드입니다.
try { getMyListMediator().applyChanges((DataObject)((ECoreEList)getMyList()).getEObject()); } catch (Throwable e) { logException(e); }
벤더 기본값이 아닌 다른 포트에서 JDBC 서버를 실행할 경우, 처음 작성되는 SDO 런타임 연결에 대해 수정이 필요합니다.
웹 프로젝트 대상이 WAS V5 서버에서 WAS V6 서버로 재지정된 경우, 간혹 WEB-INF/lib/wdo_web.jar이 삭제되지 않습니다. 이는 WAS V6 서버에 유효하지 않지만 웹 프로젝트에서 클라이언트측 오브젝트를 재생성할 때 문제가 발생할 수 있습니다(이주 안내서의 "Faces Client 구성요소와 함께 JavaServer Faces 자원 이주" 절에 있는 단계를 수행한 경우).
이 문제를 예방하려면 lib 폴더에서 이 JAR 파일을 삭제하십시오. 이를 삭제한 후, 웹 프로젝트에 대해 web.xml 파일을 열고 JAR 파일을 참조하는 taglib 태그를 제거하십시오. 웹 전개 설명자 편집기의 변수 또는 소스 페이지에서 이를 제거할 수 있습니다. 이 taglib의 URL은 http://www.ibm.com/websphere/wdo/core입니다. 그런 다음, 프로젝트 탐색기 보기에서 웹 프로젝트를 선택하고 팝업 메뉴에서 특성을 선택하십시오. 그런 다음 Java 빌드 경로를 선택한 후 라이브러리 페이지에서 모든 WDO_EMF_JARS_PATH/* 클래스 경로 항목을 제거하십시오.
V5.1 서버에서 대상으로 지정된 자동 키 생성을 사용하는 관계형 레코드로 JSP 페이지를 작성하는 경우 다음과 같은 오류가 발생할 수 있습니다.
2 cvc-complex-type.2.4.d: 'tables' 요소로 시작하는 유효하지 않은 컨텐츠가 발견되었습니다. 이 시점에서는 하위 요소가 예상되지 않습니다.
이 오류 메시지는 유효하지 않으므로 무시해도 됩니다.
기본 인증을 사용하여 서비스로 WebSphere Application Server를 실행할 때(로그인한 사용자로 실행), 사용자 이름 및 암호를 제공하지 않고 웹 응용프로그램 내에서 DB2에 연결하려고 하면 다음과 같은 오류가 발생할 수 있습니다.
java.sql.SQLException: [IBM][CLI Driver] SQL0567N "SYSTEM"은 유효한 권한 ID가 아닙니다. SQLSTATE=42602 DSRA0010E: SQL 상태 = 42602, 오류 코드 = -567
이 문제를 예방하려면 응용프로그램에 사용자 ID 및 암호를 제공하거나 사용자에 대해 액세스 권한을 가지고 있는 사용자 계정으로 명시적으로(사용자 ID 및 암호 제공) DB2 설치를 실행하도록 WAS를 설정하십시오.
더티(확약되지 않은 변경사항) JSP를 닫고 프롬프트 이후에 JSP를 저장한 경우, WDO/SDO 구성 파일에 대한 확약되지 않은 변경사항은 저장되지 않을 수 있습니다.
이를 피하려면, 관계형 레코드 또는 레코드 목록을 구성한 후에 CRTL+S를 누르거나 파일-->저장을 눌러 JSP를 저장하십시오.
이 문제는 Websphere V51 서버에서 실행하도록 작성되었지만 Websphere V60 서버에서 실행하도록 이주된 WDO 응용프로그램에서 발생합니다. 이 시나리오에서, 사용자 faces 페이지가 둘 이상의 필터 절이 있는 레코드나 레코드 목록을 가진 경우, 서버에서 실행 시 페이지에 다음 예외가 발생할 수 있습니다.
java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.emf.ecore.impl.DynamicEObjectImpl.dynamicGet(DynamicEObjectImpl.java:192) at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:1758) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicGet(BasicEObjectImpl.java:485) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:476)e at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java(Compiled Code)) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.getValue(MapDataObjectImpl.java:197) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.put(MapDataObjectImpl.java:162) at pagecode.PageCodeBase.resolveParams(PageCodeBase.java:189)
문제는 조정자의 매개변수 오브젝트에 있습니다.
이 문제를 해결하려면 조정자의 매개변수 오브젝트를 제대로 설정해야 합니다. 이를 수행하려면, getList 또는 getRecord 메소드를 다음에서
public DataListAccessBean getList1() { if (list1 == null) { try { resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
다음과 같이 수정하십시오.public DataListAccessBean getList1() { if (list1 == null) { try { getList1Mediator().setParams( new MapDataObjectImpl(((EObject) new MediatorImpl( (Metadata) getList1Mediator().getMetadata(), new NullConnectionWrapper()) .getParameterDataObject()).eClass())); resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
매개변수 오브젝트를 설정하는 코드 스니펫을 참고하십시오.
기본 서버가 선택된 경우 서버에서 실행 중 데이터소스가 서버에서 제대로 구성되지 않습니다. 데이터 소스가 제대로 설정되었는지 확인하려면, 기본 서버를 선택하지 마십시오. 응용프로그램이 공개되고 나면, 데이터 소스에 대한 변경사항을 작성하지 않은 한 기본 서버를 선택할 수 있습니다.
레코드/목록의 스키마 이름 바꾸기 조치는 고유 키 테이블 스키마 이름을 갱신하지 않습니다.
이 문제를 해결하려면, 레코드/목록의 조회를 저장하는 xml 파일을 찾아 고유 키 테이블 스키마 이름을 갱신하십시오.