MATLAB 매트랩 빌더JA를 이용하여 웹에서 그래프 그릴 때 시간 절약

매트랩(MATLAB)에서 그래프를 표현한 내용을 웹에서도 접속해서 보고 싶을 때, 자신이 만든 .m 파일을 .jar로 제작하여 .jsp나 Servlet을 통하여(매트랩빌더JA(자바)와 매트랩컴파일러가 추가로 요구됨) 웹 서비스를 할 수 있습니다. 

이 작업을 진행하면서 여러 가지 애로 사항이 생겨서 시간을 많이 소비하였습니다. 기간으로는 2주가 넘게 이런 저런 테스트를 한 것 같네요. 

그 사이 우분투, 톰캣, JSP&Servlet, 매트랩과 많이 친해(?)지긴 했지만, 과정 중에 알게된 내용을 공유하여 혹시 이런 문제로 시간이 낭비되지 않았으면 합니다.

[매트랩의 웹 서비스로 WebFigure 기본 그래프 표시 화면]


[매트랩 빌더 JA로 만든 자바패키지를 이용할 때, LD_LIBRARY_PATH 환경 변수 설정]
  • 사실 윈도우7에 매트랩-컴파일러-런타임(MCR)을 설치해서, 톰캣과 연동을 시켰을 때에는 별달리 설정할 것이 없이 잘 동작이 됩니다. 
  • 하지만, 우분투는 ROOT계정 별도, 사용자 계정 별도로 환경 변수가 설정이 되는 경향이 있기 때문에, sudo를 자유롭게 쓸 수 있다고 해도 골탕을 먹게 되더군요. 
  • 원래는 /etc/profile에 LD_LIBRARY_PATH를 설정하면 되지만, sudo로 root상태의 env를 체크해보면 사라져 버립니다. 
  • 톰캣을 설정할 때에도 JAVA_HOME조차도 어떨 때에는 잘 설정이 안되기도 하지요. 
[/etc/profile에 추가한 내용]
  • export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/sys/java/jre/glnxa64/jre/lib/amd64
  • export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/X11/app-defaults
  • export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
  • export CATALINA_HOME=/usr/local/tomcat7
  • export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin
[그렇다면 LD_LIBRARY_PATH는 어디에서 설정?]
  • 비록 /etc/profile에서 설정해주었지만 LD_LIBRARY_PATH는 한번 더 해주어야 합니다. 
  • 결론적으로는 톰캣 실행 시에 들어가야 합니다. /usr/local/tomcat7/bin/catalina.sh의 #!/bin/sh 바로 밑에 추가를 합니다. 
  • 톰캣7설치에 관한 깔끔한 글 =  http://blog.sixpoly.com/?p=292
  • 위와 같이 설치한 경우에는 sudo service tomcat7 stop, sudo service tomcat7 start로 실행하게 되며 이 때 catalina.sh가 이용됩니다. sudo apt-get install tomcat7으로 설치한 경우에는 /etc/init.d/tomcat7 자체가 복잡한 코드가 생겨나기 때문에 머리가 복잡해지므로 pass
(참고) 위 예제는 매트랩이 설치된 폴더(예: /usr/local/MATLAB/R2012a/toolbox/javabuilder/jar/WebFigureQuickStart.war)에서 찾을 수 있고 몇 가지 메모를 남깁니다. 
  • /usr/local/tomcat7/webapps에 복사하면 기본 설정이 자동 설치이므로, http://localhost:8080/WebFigureQuickStart/WebFigureExample.jsp로 접속해서 확인해볼 수 있습니다. 
  • JSP 커스텀 태그용 jstl.jar와 standard.jar는 없어도 동작 되는 거 같습니다. 꼭 필요하다면 /usr/local/tomcat7/webapps/examples/WEB-INF/lib에서 찾을 수 있을 것입니다. 
  • /usr/local/MATLAB/R2012a/toolbox/javabuilder/jar/javabuilder.jar는 /usr/local/tomcat7/lib에 하나 복사해 두면 됩니다. 
  • java의 버전이 6이라면 릴리즈가 20이든 30이든 33이든 무관하게 잘 되는 것 같습니다. 굳이 java-6-sun을 찾아서 설치할 필요가 없이 java-6-openjdk만 설치해도 되겠습니다. 


덧글

  • 2012/12/04 21:26 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 무재칠시 2012/12/05 12:43 #

    에공, 죄송합니다.

    제가 회사에 다니고 있어서 바쁘기도 하고, 매트랩으로 프로그램을 짠 적이 없으므로 도와드리기 어려울 거 같습니다... 첨언하면, 제가 한 일은 매트랩으로 된 코드를 자바 서블릿으로 돌려주는 것이기 때문입니다.
댓글 입력 영역