Proxied and SOLO Application

この章はSOLOとProxiedの違いをまとめているようです。簡単に言ってしまうと、サーバモジュールがいるものをProxied、いらないものをSOLOって分けているみたい。
私は勘違いで、コンパイルされているものがSOLOで、されていないものがProxiedって勘違いしていました。

とりあえずいろいろ試してみました。

<!-- HelloSOLO.lzx -->
<canvas proxied="false">
  <text>Hello SOLO</text>
</canvas>

こいつをブラウザでアクセスすると、同じディレクトリにHelloSOLO.lzx.swfが出来上がります。

<!-- HelloProxied.lzx -->
<canvas proxied="true">
  <text>Hello Proxied</text>
</canvas>

こいつは出来ない。

<!-- HelloInherit.lzx -->
<canvas proxied="inherit">
  <text>Hello Inherit</text>
</canvas>

こいつは、値を引き継ぐらしい、どうやらクエリパラメータ(lzproxied)に依存するのか・・・。

実際にアクセスすると下記のようにでるようです。

HelloInherit.lzx?lzproxied=false できる
HelloInherit.lzx?lzproxied=true できない
HelloInherit.lzx できない

じゃ、うえのSOLOとProxiedはというと

HelloSOLO.lzx?lzproxied=false できる
HelloSOLO.lzx?lzproxied=true できない&怒られる(warning)
HelloSOLO.lzx できる
HelloProxied.lzx?lzproxied=false できない&怒られる(warning)
HelloProxied.lzx?lzproxied=true できない
HelloProxied.lzx できない

なるほどね。ちなみにproxiedを指定しない場合は、inheritと同じみたいです。結局何もつけなくても普通に作るうえでは問題って出てこないんじゃないかな?ちがってます?

で、ここまでやってきたのですが、出来上がるファイルが*.lzx.swfっていけてないような気がします。しかも、ブラウザでアクセスすると出来上がるってのもいけてない・・・。開発時はともかく、デプロイ時までぶらうざアクセスですか?

やっぱりありました。手動でのコンパイル。WEB-INF/lps/server/binの中にそれらしいものが・・・。でも私の環境じゃ動かない・・・なぜだ?でもバッチファイルの中を見てみるとどうやらJavaのMainを読んでいるだけなんですよね。じゃ、こいつをANTタスクにして見ましょう。

ANTタスクはもうちょっとカスタマイズしてから公開します。
で、build.xmlはこんな感じになります。

<target name="lzc">
  <taskdef name="lzxcompile" classname="LaszloTask">
    <classpath>
      <fileset refid="classpath"/>
    </classpath>
    <lzxcompile
      srcdir="lzx"
      includes="**/*.lzx"
      destdir="swf"
      lpsHome="C:\OpenLaszlo Server 3.1\Server\lps-3.1cr1"/>
</target>

で、都合よくタスクをスタート!!
は時間が無いので・・・・ここからは明日以降ってことで・・・。