Armadilloフォーラム

Armadillo IoTで Tomcat利用

intec_atird

2015年11月6日 10時24分

インテック山崎と申します。
Armadillo IoT で Tomcat を利用しようと考えています。
JavaSE Embedded 8 compact1 では単純に起動しても ClassNotFoundExceptionとなります。
どなたか実現事例はお持ちでしょうか?

コメント

at_kojiro.yamada

2015年11月13日 19時43分

compact1ではクラスが足りないので、Full SE APIが必要なようです。

ただし、JREのサイズが大きくなり、ユーザーランドイメージが
Armadillo-IoTに搭載されているフラッシュメモリに
収まらなくなってしまいます。

そのため、JREをユーザーランドイメージに含めずに、
USBメモリや、microSDカードなどの外部ストレージに配置
する必要があります。
また、Tomcat自体もサイズが大きいため、
同様に外部ストレージに配置する必要があります。

さらに、Tomcatの動作に必要なメモリを確保するため、
rubyをユーザーランドイメージに含めないようにする必要があります。

私が試した時の手順は次のようになります。

ビルド方法については以下を参照してください。
11.1. Linuxカーネル/ユーザーランドをビルドする
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…
22.1. イメージをカスタマイズする
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…

[ATDE]$ cd atmark-dist-[VERSION]
[ATDE]$ make menuconfig
-----------------------------------------
Userland Configuration
  Miscellaneous Applications
    [*] java
    [*]   Oracle Java SE Embedded 8
    (full)     profile
    (all)     vm
-----------------------------------------
 
[ATDE]$ rm -rf ejdk/jre
[ATDE]$ make
[ATDE]$ sudo cp -a ejdk/jre /mnt/jre
[ATDE]$ make menuconfig
-----------------------------------------
Userland Configuration
  Miscellaneous Applications
    [ ] java                   <- チェックを外す
    [ ] ruby                   <- チェックを外す
-----------------------------------------
 
[ATDE]$ make
[ATDE]$ ls images/romfs.img.gz
romfs.img.gz

Tomcatを起動させる際には、
事前にJREをコピーした外部ストレージをmountし、
環境変数 JRE_HOMEにJREディレクトリのパスを指定してください。

私が試した時は、以下のようにTomcatを起動させました。
JREは/mnt/jre、
Tomcatは/mnt/tomcat7、
に配置されています。

su - tomcat7 -c "JRE_HOME=/mnt/jre /mnt/tomcat7/bin/startup.sh"

インテック山崎です。
> 私が試した時の手順は次のようになります。
情報、ありがとうございます。試してみます。