2011-10-06 4 views
1

GWT 2.4를 gquery-dnd-bundle 1.0.4와 함께 사용하여 드래그 앤 드롭 노드로 트리를 구성 할 수 있습니다. 나는 성가신 버그 (http://code.google.com/p/gwtquery-plugins/issues/detail?id=6)에 부딪 혔습니다. 그것의 요지는 "gquery-dnd-bundle-1.0.4.jar"파일이 WEB-INF/lib 디렉토리의 gwt-servlet.jar 파일보다 먼저 런타임에 클래스 로더에 의해로드되도록 보장해야합니다.클래스 패스에 JAR 파일을로드하는 순서 제어

어떻게 보증하나요?

유용한 경우 Eclipse Indigo를 GWT 웹 응용 프로그램 프로젝트와 함께 사용하고 있습니다.

는 여기에 당신이 결정하기 위해 모든 종류의에서 "WEB-INF/lib에"JAR의 로딩을 마련 할 수

[ERROR] [draganddroptree] - Errors in 'jar:file:/C:/Documents%20and%20Settings/E18538/workspace/DragAndDropTree/war/WEB-INF/lib/gquery-dnd-bundle-1.0.4.jar!/gwtquery/plugins/droppable/client/gwt/DragAndDropCellTree.java' 
     [ERROR] [draganddroptree] - Line 24: The type com.google.gwt.user.cellview.client.CellTreeNodeView is not visible 
     [ERROR] [draganddroptree] - Line 86: CellTreeNodeView cannot be resolved to a type 
     [ERROR] [draganddroptree] - Line 87: The constructor DragAndDropCellTreeNodeView<T>(DragAndDropCellTree, CellTreeNodeView<?>, TreeViewModel.NodeInfo<T>, Element, T) refers to the missing type CellTreeNodeView 
    [ERROR] [draganddroptree] - Unable to load module entry point class com.cme.draganddroptree.client.DragAndDropTree (see associated exception for details) 
    [ERROR] [draganddroptree] - Failed to load module 'draganddroptree' from user agent 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1' at localhost:4490 

답변

0

을보고 있어요 정확한 오류입니다. 내가 생각할 수있는 유일한 확실한 해결 방법은 우선 순위가 낮은 JAR 파일을 "WEB-INF/lib"이전에 스캔 한 디렉토리에 배치하는 것입니다. 예를 들어

, if you are using Tomcat, then you could :

  1. 놓고 "$ CATALINA_BASE/lib이"디렉토리에서 "GWT-servlet.jar 파일"파일.
  2. WAR 내에 "gquery-dnd-bundle-1.0.4.jar"파일을 보관하십시오.

이렇게 "GWT-servlet.jar 파일 ''- gquery DND 다발-1.0.4.jar는"제로드 될 ... 충돌로부터 클래스를 덮어 먼저 CLASSPATH에로드되고 "gwt-servlet.jar".

다른 응용 프로그램 서버를 사용하는 경우 서버 수준의 "lib"디렉토리가 달라집니다 ... 기본 개념은 우선 순위가 낮은 JAR이 응용 프로그램 서버의 "lib"로 이동해야한다는 것입니다. 우선 순위가 높은 JAR은 webapp의 "lib"에 있어야합니다.

세계에서 가장 깨끗한 상황이 아니지만 원하는 결과를 보장합니다.

업데이트 : 알다시피, 그것에 대해 생각하고 Tomcat 문서를 더 신중하게 읽은 후에, 실제로 이것을 뒤로 할 수 있습니다. 앱 서버 "lib"에 "gquery-dnd-bundle-1.0.4.jar"을 넣고 웹 애플리케이션의 "lib"에 "gwt-servlet.jar"을 넣어야 할 수도 있습니다. 내 제안을 시도해보고 다른 접근 방법보다 한 가지 방법을 통해 효과가 있다는 것을 알게되면 알려주십시오.보다 정확한 답변을 편집 할 것입니다.

+0

나는 아주 오래된 버전의 tomcat을 사용하고 있지만 IIRC는 이름의 사전 순으로 항아리를 검사합니다. 어쩌면 그것이 지금 바뀌었을지도 모른다. –

+0

아마 그럴 것입니다.하지만 항상 작동 할 것이라고 보장 할 수는 없습니다. –

+0

여기에는 [here [(http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html)]이 정확히 나와 있지는 않지만 **/WEB-INF/lib/*는 의심 스럽습니다. 웹 응용 프로그램 **의 항아리는 알파벳순이 아닌 모든 것을 의미합니다. –

0

이 문제를 해결하려면 클래스 경로에서 GWT 앞에 gquery-dnd-bundle-1.0.4.jar를 설정해야합니다. 프로젝트 속성에서 Eclipse를 사용하여 으로 이동합니다. Java 빌드 경로/내보내기를으로 주문하고 gquery lib가 GWT보다 앞에 있는지 확인하십시오.

gquery-dnd-bundle-1.0.4.jar이 GWT 2.3.x와 호환되고 GWT 2.4를 사용하고있어 다른 문제가있을 수 있습니다. dnd-bundle을 새로 릴리스 할 때까지 enhance-plugin-1.0.2.jar (DND 번들 포함) 및 gwtquery-1.1.0-SNAPSHOT.jar을 사용할 수 있습니다.

GWT 2.4에 추가 된 기본 드래그 앤 드롭 지원도 참조해야합니다. 문서가 부족하지만이 템플릿은 example (오른쪽에서 템플릿을 드래그하고 작업 세부 정보에 놓을 수 있음) 및 관련 source code을 발견했습니다.(정보는 post)

관련 문제