'jeus'에 해당되는 글 2건
Linux 서버에서 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 에러날때
개발환경인 윈도우에서는 쌩쌩 잘 돌아가던게 리눅스 서버에 올리고 이것저것 해 보다보니
java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 요런 에러가 났다.
처음에는 JDK 버전이 후져서 그런가 했더니, 알고보니 리눅스 환경 때문에 나는 에러 같았다.(정확히는 잘 모름. 영어가 후달려서)
나의 경우 Thumbnailator 라는 라이브러리로 이미지 썸네일을 맹글었는데 요기서 에러가 발생했다.
아무튼 리눅스 서버든 유닉스 서버든 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 요게 뽀잉 뜰때 에러를 해결할려면
시스템 프로퍼티 java.awt.headless 요걸 true 로 설정해 주면 된다.
톰캣같은 경우는 catalina.sh 파일 제일 위에다 요렇게 추가 시키고 ps -eaf | grep java 로 확인해 보면 -Djava.awt.headless=true 요렇게 추가돼 있다.
CATALINA_OPTS="-Djava.awt.headless=true"
제우스 같은 경우는 (내가 배포해야 되는 WAS 가 제우스기 때문에 -_-)
config 디렉토리 디벼보면 JEUSMain.xml 파일이 있는데 요걸 바로 수정해 주거나 아니면 webadmin 을 이용해서 수정해 주면 된다.
<jeus-system xmlns="http://www.tmaxsoft.com/xml/ns/jeus"> <node> ... ... <engine-container> <name>testContainer</name> <id>121</id> <base-port>11011</base-port> <command-option>-Xms256m -Xmx512m -Djava.awt.headless=true</command-option> <engine-command> <type>servlet</type> <name>test</name> </engine-command> <sequential-start>true</sequential-start> </engine-container> ... ... </jeus-system>
죠렇게 command-option 에다 추가할것들 추가해 주거나, webadmin 화면에서 할려면 요렇게 해도 결과적으로는 똑같다.
※ 설정을 바꿨으면 WAS 를 리스탓트 해줘야 된다.
리스탓트 후 다시 해보면 기가 막히게 다시 잘된다. 잇힝
'쓸만한지식' 카테고리의 다른 글
이클립스로 GitLab 연결하기 (egit 이용) (2) | 2014.03.31 |
---|---|
Ubuntu GitLab 설치하기 with apache, mysql (0) | 2014.03.27 |
jetty 7.x 에서 JNDI Oracle Datasource 설정하기 (0) | 2014.02.18 |
java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext; 에러날때 (0) | 2014.02.14 |
Eclipse juno 툴바에 안드로이드 관련 버튼이 없을때 (2) | 2013.06.20 |
제우스 + 스프링 프로젝트 디플로이시 java.lang.IllegalStateException: Unable to locate the default servlet for serving static content 이 발생할때
java.lang.IllegalStateException: Unable to locate the default servlet for serving static content. Please set the 'defaultServletName' property explicitly.
어쩌고 하는 에러가 났다.
쪽~~~ 찾아보니 에러가 나는 이유는 "/" 경로를 처리하기 위해 등록했던 스프링 설정파일 중의 <mvc:default-servlet-handler/> 요 설정 때문이였다.
원래 <mvc:default-servlet-handler/> 설정할때 <mvc:default-servlet-handler default-servlet-name="디폴트서블릿 이름"/> 요런식으로 WAS 의 디폴트 서블릿 이름을 설정해 줘야 하는데,
tomcat, resin, weblogic, websphere 같은 외국에서 맨든 was 들은 <mvc:default-servlet-handler/> 요렇게 편리하게 설정할수 있도록
스프링 개발자가 주요 was 에 대해 처리를 해줘서, 굳이 디폴트 서블릿 이름을 안적어 줘도 됬었던 것이다.
아무튼 Jeus 에서 에러를 해결하기 위해서는 Jeus 에서 쓰는 디폴트 서블릿 이름인 WorkerServlet 을
<mvc:default-servlet-handler default-servlet-name="WorkerServlet"/>
요래 설정해 주면 해결할 수 있다.
※ 디폴트 서블릿 이름을 알려면 ?
각 was 설치 디렉토리 아래쪽으로 설정 파일들 모아 놓은데 보면 web.xml 파일이 있다. 예를 들어 톰캣 같은 경우는 톰캣설치디렉토리/conf/web.xml 파일이 되겠다.
이 파일을 열어보면
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>요렇게 되 있는데 <servlet-name>default</servlet-name> 에서 default 가 디폴트 서블릿 이름이다.
※ was 별 default servlet name
Tomcat : default
Resin : resin-file
Weblogic : FileServlet
WebSphere : SimpleFileServlet
jetty : default
jboss : default
jeus : WorkerServlet
2011/11/15 - [Javascript 예제] - jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제
2011/11/13 - [Java] - Java Map 반복(Iteration)시키는 3가지 방법
2011/11/11 - [Javascript 예제] - jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
'잡다구리 샘플' 카테고리의 다른 글
jQuery 와 Servlet을 이용한 간단한 Captcha 샘플~ (5) | 2011.08.23 |
---|---|
CrossDomain Ajax 호출 #2 : jQuery JSONP를 이용한 Daum OpenAPI 활용 (2) | 2011.08.11 |
CrossDomain Ajax 호출 #1 : jQuery JSONP ajax 호출 이용. (4) | 2011.08.10 |