본문 바로가기

개발환경/이클립스

No grammar constraints (DTD or XML schema) detected for the document. 이클립스에서 XML을 사용하다 보면 위와 같은 경고(Warning)을 볼 수 있다. "경고를 무시하지 말라!" 내가 강조하는 프로그래밍 코딩 규칙중 하나인데 내가 무시할 수는 없지 않겠는가. 해결방법은 아래와 같다. 만약 아래와 같이 했는데도 적용이 되지 않는다면 Project -> Clean 을 통해 해당 프로젝트를 리빌드한다. 그럼 경고가 사라진다. (Galileo 기준) Window -> Preferences -> XML -> XML Files -> Validation : Indicate when no grammar is specified 의 값을 Warning --> Ignore 로 변경 참고사이트 http://www-01.ibm.com/support/docview.wss?rs=2044&conte.. 더보기
이클립스에 Java3D 개발환경 설정하기 Java로 3D를 개발하기위해서는 먼저 어떤 라이브러리를 사용할 것인가를 결정해야만 한다. 일단 저자가 테스트 해본것들을 나열해 보면 LWJGL(Lightweight Java Game Library) http://www.lwjgl.org/, JOGL(Java OpenGL) https://jogl.dev.java.net/, Java3D https://java3d.dev.java.net/ 등이 있었다. 이러한 사이트를 방문해 보면 각종 튜토리얼 및 데모 버전 또는 소스코드를 확보할 수 있는데 이 소스코드 등을 실행해보려면 여간 까다로운게 아니다. 먼저 가장 쉽게 접근하는 방법은 J2SE JDK를 설치하고 *.jar 는 JAVA_HOME/jre/lib/ext 에 복사하고 *.dll은 JAVA_HOME/jre/.. 더보기
Eclipse Ganymede RCP에서 org.eclipse.draw2d 소스가 보이지 않을 때 원인과 해결방법 Eclipse SDK Version: 3.4.1 Build id: M20080911-1700 Eclipse Ganymede RCP를 설치한 경우 org.eclipse.draw2d 관련 소스가 보이지 않는다. 이유는 3.4.0 버전의 Runtime만 설치가 되었기 때문에 소스가 포함되어 있지 않기때문이다. 오늘 약 6시간 가까이 이 문제와 씨름을 했다. GEF 3.4.0 Update 버전 GEF 3.4.1 Update 버전 GEF 3.4.1 All 버전 등을 다운받아 로컬에서 인스톨을 해봤지만 여전히 소스는 인식하지 않았다. 로컬에서 인스톨하는 방법은 Help --> Software Updates... --> Available Software --> Manage Sites... --> Add... 를 선택.. 더보기
[ERROR]java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher 개발환경 : eclipse(europa) 3.3.2 + WTP(JST, WST) 2.0.2 + Tomcat 5.5.2 위의 개발환경으로 웹애플리케이션을 개발할 때 아래와 같은 예외가 발생할 수 있다. 이때 이클립스 클래스패스 상에는 struts-core 가 있기 때문에 문제가 없는데도 에러가 발생한다. ... 심각: Exception starting filter struts2 java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359) at org.apache.cata.. 더보기
[ERROR] .filterStart : Exception starting filter struts2 환경정보: Eclipse Platform, Version: 3.3.2, Build id: M20080221-1800 m2eclipse 0.9.8.200905041414 tomcat-5.5.23 문제상황: WTP Server환경에서 m2clipse를 사용하여 실행했을 때 아래 에러 스택과 같은 예외가 발생한다. 문제는 톰캣에 있는 servlet-api.jar(2.4) 와 'pom.xml'에 선언된 javax.servlet servlet-api 2.4 provided 버전이 배포가 되어서 충돌하기 때문에 발생한다. scope를 'test'변경하면 정상동작한다. 이로 미루어 보아 WTP서버에서 메이븐이 동작할 때 배포하지 않아야 할 라이브러리 까지배포하기 때문에 발생한다고 유추할 수 있다. 사실 'test'와.. 더보기
CHKJ3008E: Missing or invalid WAR file. 현상 : 이클립스에서 WebProject를 개발할 때 발생한다. 원인 : 이클립스 프로젝트로 'import'할 때 web.xml을 찾을 수 없을 경우에 발생한다. 해법 : 이클립스는 해당 자원을 컴파일을 통해 특정위치(보통 output folder)에 내보내게 되는데 이때 'WEB-INF/web.xml'을 내보내는데 실패를 해서 위의 에러가 발생하는 것이다. 그러므로 'project --> clean'을 해주던가 이클립스를 다시 시작하면 해결된다. 더보기
Dynamic Web Module이 아닌 일반 자바 프로젝트에서 발생하는 워닝 제거하기 문제 이클립스에서 메이븐2 + WST 를 사용하고 있을 때 웹 모듈이 참조하는 일반 자바 프로젝트에서 다음과 같은 경고(Warnning)가 발생할 경우 어떻게 경고를 제거할 것인가? Classpath entry org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtime ClassNotFoundExceptions may result. 해결방법 문제를 해결하고자 열심히 구글링을 했지만 해결방법으로 제시한 것들은 모두 WST의 Dynamic Web Module에서 발생한 경우이고 문제로 제기한 것과 같이 웹 모듈이 참조하는 일반 자바 프로젝트에서 발생한 경우는 딱히 해결 방법을 찾을 수가 없었다. 그래서 .. 더보기
eclipse에서 Junit4 실행시 클래스 변경이 즉시 반영되지 않는 이유 "이클립스내에서 정확한 테스트를 하려면 반드시 메이븐 빌드된 모든 결과물을 삭제(클린)해야만 한다" 정확한 이유는 알수가 없었다. 그러나 추측컨데 다음과 같은 테스트를 통해 나만의 결론에 도달했다. 기본실행환경 OS : MS Windows Vista Home Edition Eclipse : 3.3.2 WTP Maven 2.0.9 현상 : 아무리 클래스를 변경하고 강제로 fail 하도록 코딩해도 정상적이다. 그러나 특정 시점에는 아무리 오류를 수정해도 계속 에러가 난다. 미친다~~~. 그런데 메이븐으로 빌드하고 나면 변경된 내용이 반영된다. 허참.. 추정 : 이클립스가 컴파일하지 않는다. 결과 : 이클립스가 제대로 컴파일하는지 알기 위해 기본 컴파일 경로를 변경해봤으며 컴파일된 내용을 확인해 봤다. 정상적.. 더보기
AST View 플러그인 소개 Homepage : http://www.eclipse.org/jdt/ui/astview/index.php org.eclipse.jdt.astview - AST 뷰 목적 에디터에 열린 자바파일의 AST(abstract syntax tree)를 보여주기위한 뷰. 텍스트 선택에서 AST 노드로 또는 AST 노드에서 텍스트 선택으로 탐색할 수 있다. AST 노드와 텍스트 선택의 연결을 보여주고 비교한다. 설치 업데이트 사이트: Name : Eclipse AST View Updates URL : http://www.eclipse.org/jdt/ui/update-site 참고 : Help -> Software Updates -> Find and Install... -> Search for new features t.. 더보기
JET2에서 XML 머징하기 EMFT/M2T의 JET2에서 java 파일 및 properties 병합(merging)은 를 통해 쉽게 수행할 수 있다. 그러나 XML 과 같은 자원은 쉽게 구현할 수 있는 태그가 존재하지 않기때문에 태그라이브러리를 직접구현하거나 , , , 태그를 통해 해당 기능을 처리해야만 한다. 또 한가지 고려할 것은 동적 자원(리소스)에 대한 존재여부이다. 정적 자원의 경우에 urlContext("transform", "workspace")에 따라 해당 위치에 반드시 존재해야 하기 때문에 큰 문제가 되지 않는다. 그러나 동적 자원을 생각해 보자. c:load 태그로 해당 자원을 불러와야 하는데 특정 위치(url)에 존재하지 않을 수도 있다. 이럴 경우 어떻게 할 것인가? 동적 자원에 대한 고민을 하다가 고정된 위.. 더보기