Archive for the ‘Java’ Category
Mac版EclipseでCtrl+Spaceが効かない件
Mac版EclipseでCtrl+Spaceキーが使えなかったので、解決方法をメモしときます。
- 「システム環境設定」を開く。
- 「キーボード」を選択
- 「キーボードショートカット」を選択
- 「Spotlight」を選択
- 「Spotlight検索フィールドを表示」のチェックを外す

PHP on Google App Engine

1. Quercusライブラリダウンロード
http://quercus.caucho.com/ から Quercus 3.1.6をダウンロードする(Quercus 4.0.1は文字化けが発生するので、今回は3.1.6を使うようにする)
jar xf quercus-3.1.6.war
(quercus.jar, resin-util.jar, script-10.jar)
2. Jettyライブラリダウンロード
http://dist.codehaus.org/jetty/jetty-6.1.17/ から jetty-6.1.17.zip をダウンロード
(jetty-6.1.17.jar, jetty-util-6.1.17.jar)
3. ライブラリをlibフォルダに入れる
1と2で取得したjarファイルを war/WEB-INF/lib に入れる
4. 設定ファイル修正
4-1 appengine-web.xml
<static-files> <exclude path="/**.php" /> </static-files> <resource-files> <include path="/**.php" /> </resource-files>
4-2 web.xml
<servlet>
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<init-param>
<param-name>script-encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ini-file</param-name>
<param-value>WEB-INF/php.ini</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Quercus Servlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
4-3 php.ini ファイル作成
war/WEB-INF の下に php.ini ファイルを新規作成
unicode.semantics=on unicode.http_input_encoding=UTF-8 unicode.output_encoding=UTF-8 unicode.runtime_encoding=UTF-8
5. info.php
warの下にinfo.phpを作成
<?php phpinfo(); ?>
6. アクセスしてみる。
http://localhost:8080/info.php
Tomcat6 + jre6でのエラー解決法
エラー内容:
[info] Starting service...
[174 javajni.c] [error] 指定されたモジュールが見つかりません。
[994 prunsrv.c] [error] Failed creating java
C:\Program Files\Java\jre6\bin\client\jvm.dll
[1269 prunsrv.c] [error] ServiceStart returned 1
[info] Run service finished.
解決法:
C:\Program Files\Java\jre6\bin\下の「msvcr71.dll」をC:\WINDOWS\system32にコピーする。
Struts2.0->Struts2.1変更点(一部)

1.Filter
Struts2.0
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
Struts2.1
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.
StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
2.アノテーションクラス
@Namespace, @Resultなどのアノテーションクラスが、strtus2-core-2.0.x.jar から struts2-codebehind-plugin-2.1.x.jarに移されてる。よって、2.1でアノテーション使う場合は、libに struts2-codebehind-plugin-2.1.6.jar を入れる必要がある。
3.タグ
tabbedpanel、tree、datetimepicker などのタグがクラスが、 strtus2-core-2.0.x.jar から struts2-dojo-plugin-2.1.6.jar に移されてる。よって、2.1で上のようなタグを使う場合は、libに struts2-dojo-plugin-2.1.6.jar を入れる必要がある。
taglibの定義とサンプル
<%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sx" uri="/struts-dojo-tags" %> <table width="300"><tr><td> <sx:tabbedpanel id="tabpanel1"> <sx:head/> <sx:div id="tab1" label="TAB1" theme="ajax">タブ1</sx:div> <sx:div id="tab2" label="TAB2" theme="ajax">タブ2</sx:div> <sx:div id="tab3" label="TAB3" theme="ajax">タブ3</sx:div> </sx:tabbedpanel> </td></tr></table>
Google App Engine for Java
最近iPhoneアプリの開発に夢中になって、なかなか時間が取れなかったのですが、今日やっと時間がすこしあったので、前からやってみたかった app engine for java を試すことにしました。Pythonの時はSDKをダウンロードして、秀丸なり好きなエディターでコードを書いてましたが、今回はEclipseのプラグインという素晴らしい選択肢がありました。もちろんJava版のSDKも用意してますけど。
推奨されてるJavaバージョンは6ですが、5でも大丈夫みたいです。Javaはすでにイスントールしてあるので、Eclipseのプラグインを入れることにしました。使ってたEclipse3.3.1にプラグインを入れようとしましたが、「org.eclipse.wst.xml.core」が必須ですと怒られて、本体のUpdateを行いましたが、今度はEclipseの起動すらできませんでした。ショック!しょうがないんでEclipse3.4でチャレンジすることにしました。
まずは、こちらからEclipse3.4.2をダウンロード(http://www.eclipse.org/downloads/packages/)
英語が得意ではないんで日本語化(http://mergedoc.sourceforge.jp/index.html#/pleiades.html)
次はGoogle Plugin for Eclipseを入れる。(http://dl.google.com/eclipse/plugin/3.4)
完了すると、メニューに三つのアイコンが出てきます。(可愛い~)左からプロジェクト作成、コンパイル、デプロイです。新規でプロジェクトを作成するとテンプレートでAjaxを使ったサンプルコードが自動生成されます。試しにappspotにデプロイしたのがこちら(http://term.appspot.com/)。これだけだと寂しいんでGuestBookも入れようとしましたが、失敗しました。ローカルでは問題なく動きますが、appspotにデプロイするとServer Errorが発生します。
「java.lang.ClassCastException: com.google.appengine.api.users.UserServiceFailureException cannot be cast to javax.servlet.ServletException」
どうもこれが原因らしい。(http://groups.google.com/group/google-appengine-java/browse_thread/thread/3263e14c37391830)
やってみて、Pythonの時と比べると少しは楽かと思いました、少なくとも言語がJavaなんで言語そのものの勉強は要らないですね。さ~何を作ってみようかな?時間があるときですけど。時間は自分が作るものだと言われてますが、なかなか難しいですね・・・
Tomcat, Apache 連携
ApacheとTomcatを連携する必要になりました。理由は以下のものを同時に使いたいからです。
Java, JSP (Struts), PHP, CGI(Perl)
Tomcatからcgi形式でPHP,Perlを起動できると思いますが、今回はApacheとTomcatを連携してみます。
1.まず、Apache2をインストール。
http://httpd.apache.org/download.cgi からhttpサーバーをダウンロードしてインストール。
Windowsの場合は、apache_***-win32-x86-***.msi でしょう
2.次にTomcatをインストール。
http://tomcat.apache.org/download-41.cgi からTomcat4.1をダウンロードしてインストール。
Windowsの場合は、Windows Installer でしょう
3.次にTomcat-connections をインストール。
http://tomcat.apache.org/connectors-doc/ から Windows用のbinary ファイルをダウンロード。
mod_jk-1.2.26-httpd-2.2.4.so ダウンロードして、Apache2.2\modulesにコピーします。
4.次に設定ファイルを編集。
Apache2.2\conf の下に、「workers.properties」 ファイルを作成。
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
Apache2.2\conf\httpd.conf ファイルに以下を追加
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
<IfModule mod_jk.c>
JkWorkersFile “C:/***/Apache2.2/conf/workers.properties”
JkMount /*.jsp worker1
JkMount /*.do worker1
</IfModule>
5.起動して確認。
Tomcat、Apache順にサーバーを再起動してからポート番号80番でTomcatが動くことが確認できると思います。
Leave a Comment
Leave a Comment
Leave a Comment