i-jetty調査メモ
@megascus i-jetty URL 使えば動かせるかも?#yutori_history のレポ作って検証お願いします(N7で RT AndroidがJavaだというならJenkinsぐらい動かしてみろ!Google!!
2013-05-02 14:12:20 via YoruFukurou to @megascus
@home 休み中の目標 #irof_history を1回アップデートする #yutori_history の元ネタと仕込み考える(でもゆとりさんはjettyやtomcatはお嫌い?<GlassFishネタじゃないと無反応?
きっかけ的にはこんな感じで調べてみようという感じで。
でもまあAndroidの中に鯖立てる意味って正直疑問。
と思うところもあるわけですが・・
まあjenkinsでdxは多分通らないけど
あれはgroovy-all使ってるからなんだよな。。
discobotにしても
- patch当ててdex可能なjarを作成
って流れでしたから。。。
巷で流行ってるDSLって書きやすいんだろうけど
静的な世界のお話ではないですからね。。。(汗
公式は
- i-jetty - Google Play の Android アプリ
- GitHub - jetty-project/i-jetty: Jetty for Android (moved from code.google.com)
ネット記事を調べていくと
- 小山博史のJavaを楽しむ(15):年末でJetty(絶対)にできる Android携帯サーバ活用 (4/4) - @IT
- 公開日誌 | [Android] i-jettyを使ってサーブレットを作ってみる
あたり。
どちらも手動でdexやるから面倒っぽい記載が書かれてたり
で
公式のアプリ経由でのデプロイ手順だと
- 作ったwarのdex化が必要
- 公式の GitHub - jetty-project/i-jetty: Jetty for Android (moved from code.google.com) 見ると mavenでやれって記述が出てくる
- ローカルPCに鯖等を立ててURL越しに指定
- ダウンロードさせてデプロイ
という話で、
そこら辺面倒だから
な感じでapkに最初から入れても問題ないっしょ?*2
という記述が出てくる。
利用シーンとして
- 隣の人とWebSocket辺りで繋ぎたいかな
とか想定するとこれだと不便
=> Android Beam(NFC)やBlutetoohで良くない?
になってしまうかな。。。
以下試行錯誤ログ
SocketConnector は jetty v8はあったのでとりあえずこちらで様子みてみるかな。。具体的なコード例とかの類例がないとキツイのはOSSで必ずぶち当たってる気がする
それに gf.getDeployer().deploy あたり内部でgetRealPathしてそうなんで、そこも問題になりそう以前から気にはなってたけど、動的にaddServletとか出来ないもんなのかな<start =>war deployしか無い? (glassfish
- Modifying XML libraries for Android · CUTR-at-USF/SiriRestClient Wiki · GitHub
- とりあえず: [Android][メモ] java.beans.*
ただ今だと、今回IDEAでAndroidプロジェクトを新規に作ったのですが
結構変わってたので詳細はプロジェクトを参照して頂けると
遣った作業的には
<!-- <target name="-dex" depends="-compile, -post-compile, -obfuscate"> --> <target name="-dex" depends="-compile, -post-compile, -obfuscate, -jarjar"> <macrodef name="dex-helper"> <!-- //略 --> <else> <path id="out.dex.jar.input.ref"> <!-- <path refid="project.all.jars.path" /> --> <fileset file="${out.absolute.dir}/repackagedclasses.jar" /> </path> </else>
- buildtoolsに jarjar.jar 最新版入れる
- -jarjar 辺りのタスクは custom-rules,xml を新規作って記載
- Androidビルド - 備忘録 に載ってる話、知りませんでした><
- プロジェクト直下のbuild.xmlを編集
<!-- <import file="${sdk.dir}/tools/ant/build.xml"/> --> <import file="buildtools/build.xml"/> <!--//カスタムタスクは後で呼ばないと ${adb}とかの変数が初期化されてない --> <import file="custom_rules.xml" optional="true"/>
- これは 公式の embeded.jarがおかしいのかな?
- じゃあローカルでソース落としてコンパイルしなおしてみるか?
- もっと状況最悪
な感じ。コンパイルバージョンとか指定できないものなのかな?
しかも何気にsudoでないとコンパイルできなかったし。。
でもまあ、アプリ落ちる原因はさいしょ原因がわからなくて
- java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap
- java ee - Tomcat doesn't start on eclipse - Stack Overflow
とか色々と試行錯誤を。
じゃわからんよな。。
05-03 21:39:17.676: E/AndroidRuntime(7822): java.lang.NoClassDefFoundError: org.apache.catalina.core.StandardHost
05-03 21:39:17.676: E/AndroidRuntime(7822): at org.apache.catalina.startup.Tomcat.getHost(Tomcat.java:435)
05-03 21:39:17.676: E/AndroidRuntime(7822): at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:201)
05-03 21:39:17.676: E/AndroidRuntime(7822): at com.example.android_tomcat.tomcatActivity.initServer(tomcatActivity.java:44)
05-03 21:39:17.676: E/AndroidRuntime(7822): at com.example.android_tomcat.tomcatActivity.onCreate(tomcatActivity.java:25)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.Activity.performCreate(Activity.java:5104)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.os.Looper.loop(Looper.java:137)
05-03 21:39:17.676: E/AndroidRuntime(7822): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-03 21:39:17.676: E/AndroidRuntime(7822): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 21:39:17.676: E/AndroidRuntime(7822): at java.lang.reflect.Method.invoke(Method.java:511)
05-03 21:39:17.676: E/AndroidRuntime(7822): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-03 21:39:17.676: E/AndroidRuntime(7822): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-03 21:39:17.676: E/AndroidRuntime(7822): at dalvik.system.NativeStart.main(Native Method)
Androidはエラーが不親切だよな。。。とかよく思います
とかも参考にしてた
また今度調べそうな気もしたので
に一応調べたプロジェクトは入れてます