[컴][웹] custom spring server 에서 highcharts-export-convert 사용하기

highchart server 를 자신의 server 로 porting 하기 / linux 에서 phantomjs 설치하기



custom server 에서 highcharts-export-convert 설정


여기서 사용하는 highchart-export 소스는 아래 경로에서 download 할 수 있다.


PhantomJS

위 경로에서 windows 버전을 다운로드 하자. 그리고 특정 폴더에 압축을 풀어놓자. 여기서는 아래 경로에 풀어놓았다.
  • c:\Program Files\phantomjs\phantomjs-1.9.7-windows\

Ubuntu 에서 PhantomJS 설치하기[ref. 4] 

$>cd /usr/local/share
$>sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
$>sudo tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
$>sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs
$>sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs

phantomjs 를 설치하고 나서는
<phantomjs_path>/bin/phantomjs
를 실행해 보자. 그래서 아래 처럼 prompt 가 보이면 잘 동작하는 것이다.

openSuse 에서 .so 설치

libfreetype.so.6 설치
$> sudo zypper install freetype2

libfontconfig.so.1 설치
$> sudo zypper install fontconfig

phantomjs 실행화면

/user/phantomjs-1.9.7-linux-x86_64/bin> ./phantomjs
phantomjs>

pom.xml

<dependencies>
    <!--  Highchart export server -->
    <dependency>
        <groupId>com.highcharts.export</groupId>
        <artifactId>highcharts-export-convert</artifactId>
        <version>2.1.0</version>
    </dependency>
    <!-- end of  Highchart export server -->
    ...



import bean

context.xml 에
<beans:import resource="classpath:spring-convert.xml"/>




app-convert.properties

app-convert.properties 복사

spring-convert.xml 에서 app-convert.properties 를 사용한다.

app-convert.properties 는 아래처럼 2개의 path 에 찾게 된다.

<context:property-placeholder location="classpath*:app-convert.properties" order="0"/>
 <!-- If there is a file in the following location then it has the highest precedence and ignore the above settings -->
 <context:property-placeholder ignore-unresolvable="true" ignore-resource-not-found="true" location="WEB-INF/spring/app-convert.properties" order="-1"/>

그래서
  • WEB-INF/spring/app-convert.properties
    : src/main/webapp/WEB-INF/spring/app-convert.properties
에 넣어주면 된다.


app-convert.properties 수정

app-convert.properties 를 수정하자. 아래 경로에서 찾을 수 있다.
  • /exporting-server/java/highcharts-export/highcharts-export-web/src/main/webapp/WEB-INF/spring/app-convert.properties

이 설정파일에서 phantomjs 가 listen 할 "ip 주소/port" 를 정해주고, 실행파일의 경로(path) 를 지정해 주자. 이 밖에도 phantomjs 서버 pool의 사이즈등을 정할 수 있다. 나머지 부분은 특별히 수정할 이유는 없을 것이다. 자세한 사항은 설정파일안의 comment 를 확인하자.


#### phantomjs properties ####

# the host and port phantomjs listens to
host = 127.0.0.1
port = 7777

# location of the phantomjs executable, could be for example /usr/local/bin/phantomjs
exec = exec = c:/Program Files/phantomjs/phantomjs-1.9.7-windows/phantomjs.exe

# name of the convert script used by phantomjs
script = highcharts-convert.js 

...
...

app-convert.properties flow

web.xml -> spring-context.xml -> spring-convert.xml > app-convert.properties

app-convert.properties 는 아래 경로에서 찾을 수 있다.
  • highcharts-export\highcharts-export-convert\src\main\resources\app-convert.properties
  • highcharts-export\highcharts-export-web\src\main\webapp\WEB-INF\spring\app-convert.properties

highcharts-export-convert.jar 에서 "설정한 경로에 있는 phantomJS" 를 "설정한 port" 와 "ip address" 로 띄워준다. ref. 3 에 보면 PhantomJS 에서 제공하는 Web Server Module 에 대한 이야기가 있다.



highcharts-export-convert 소스

exporting-server\java\highcharts-export\highcharts-export-convert\
highcharts-export-convert 에는
  • highcharts-export-convert-2.1.0.jar
의 소스가 있다.




Spring Controller

그리고
highcharts-export-web/src/main/java/com/highcharts/export/controller/ExportController.java
의 exporter() 부분을 참고해서 controller 를 만들어 주면 된다.



References

  1. SETTING UP THE EXPORT SERVER >  EXPORT SERVER BASED ON JAVA AND PHANTOMJS, Highchart homepage
  2. Advanced Tutorial on Tomcat 7
  3. Web Server Module | PhantomJS
  4. linux - How can I setup & run PhantomJS on Ubuntu? - Stack Overflow

댓글 없음:

댓글 쓰기