フォルダを共有したいのにwindowsXPではデフォルトでは、フォルダのプロパティに共有タブが出てこない。
フォルダオプションの「簡易ファイルの共有を使用する(推奨)」のチェックをはずせば出てくるようになる。
どこが推奨なんだか・・・。
フォルダを共有したいのにwindowsXPではデフォルトでは、フォルダのプロパティに共有タブが出てこない。
フォルダオプションの「簡易ファイルの共有を使用する(推奨)」のチェックをはずせば出てくるようになる。
どこが推奨なんだか・・・。
アンインストールに失敗して残ったサービスのエントリを消去したい
コマンドラインで
sc delete サービス名
なお、サービス名はコンピュータの管理>サービス>消したいサービスの「プロパティ」>サービス名
でわかる。
レジストリいじる前にこちらを試すこと
リクエストディスパッチャの先頭の/を忘れるのと似ている。
対処
page属性はルートから書く。
エラーメッセージ
org.apache.jasper.JasperException: /pages/top.jsp(18,2) TLDに従ってタグ bean:message は空でなければいけませんが、そうではありません
対処
どっかでbean:message タグが閉じてない
原因:リクエストのAttributeの名前のスペルが違った。
request.setAttribute("ArticleTable", ViewTable);→ GETしているところはarticleTableだった・・・。
原因:飛び先のjspが見つからないのかもしれない。
対処:web.xmlのwelcome-fileで設定した飛び先があるかチェック。
「”」ではなく、シングル「’」で囲む。
'mailto:
メソッドから元のメソッド定義を表示・・・F3
行を下に挿入 ・・・Shift + Enter
<コンテキストルート>/WEB-INF/classes/resources/ に入れる。
リソースファイルの場所の指定はstruts-config.xmlで↓に書く。
<u>ファイル名application.propertiesの場合</u>
parameterはresourcesパッケージのapplicationを意味してる
<struts-config>
・・・
<message-resources parameter="resources.application" />
・・・
</struts-config>
native2asciiによるユニコード変換の煩わしさから解放されます。
このエディタはUnicode参照文字で書かれたプロパティファイルを直接編集することができ、native2asciiでUnicodeに変換する手間を省きます。また、通常のエディタの機能に加え、JBuilderや、Eclipseへの統合などの便利な機能を提供します。JBuilder、 Eclipseへの統合では、プロジェクト内のpropertiesファイルを直接開いて編集することが可能で、もちろんUnicodeで保存されます。直感的、かつシンプルな操作で利用できます。(プロパティエディタのサイトより)
原因:ライブラリやtldファイルが重複登録されていたため。
Struts IDEにまだ慣れてないので、変なとこ(WebContents直下とか)にtldファイルができてしまったりする。
すると同じファイルが2種類あることになる、そこでそれらを消す。しかしこれだけでは足りない。
Struts IDEのStrutsサポートはしっかりビルドパスにも登録するので、そちらでいらない登録も消すこと!
画面出力用のユーティリティパッケージ
DECLARE
wk_test VARCHAR2(100);
BEGIN
wk_test := '変数の内容を表示';
DBMS_OUTPUT.PUT_LINE(wk_test);
IF wk_test IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('固定メッセージも出力できる');
ELSE
DBMS_OUTPUT.PUT_LINE('出ないはずのメッセージ');
END IF;
DBMS_OUTPUT.PUT('改行しない');
DBMS_OUTPUT.PUT('ので続けて出力されます');
DBMS_OUTPUT.NEW_LINE;
END;
host ホストのコマンド
OEMの優先接続情報が通らないときなど。
DB起動
startup
マウントまで起動
startup mount
DB停止
shutdown immediate
トリガーが管理されている表
DESC USER_TRIGGERS
どんなトリガーがあるかを調べる
SELECT trigger_name, trigger_type, table_name, column_name, status FROM user_triggers;
トリガーのオン・オフ
ALTER TRIGGER トリガー名 DISABLE;
DISABLE・・・使用付加、ENABLE・・・使用可
DBのuser_sourceでプログラムのソースが読まれないように暗号化するコマンド
wrap iname=『c:¥からのパス』
ソースを見る
SELECT line || ' : ' || text FROM user_source
WHERE name = 'プログラム名';
エラーのあった行だけ表示
SELECT s.line || ' : ' || s.text FROM user_source s, user_errors e
WHERE s.name = e.name AND s.line = e.line AND s.name = 'プログラム名';
ログインしているユーザの所有するオブジェクト一覧の表示のSQL
SELECT object_type, object_name FROM user_objects ORDER BY object_type,object_name;
FrontPage - JAVAに関する備忘録 HIDEKAZU PukiWiki さんの
Ajax DWR(Direct Web Remoting) セッション のコード改(こちらでは動作できなかった為)
*赤いところが変更点と気になったところ。
使用イメージ


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DWR</title>
<script type='text/javascript' src='dwr/interface/Testdwr.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript'>
<!--
var resData;
function searchAddress () {
var zipcode = dwr.util.getValue("zipcode");
if (zipcode.length == 7) {
Testdwr.getZipdata(zipcode, result); //getZipdataの引数が郵便番号がはいり、コールバック関数resultが呼ばれると思うので、zipcodeとresultを逆にしました。
}
}
function result(data) {
dwr.util.setValues(data);
resData = dwr.util.toDescriptiveString(data, 2); // toDescriptiveString(data, 2)はtoStringの気の効いてるやつ?第1引数は文字列にしたいオブジェクト、第2引数は複数行可の指定?エイゴワカラン。
}
function btnKakunin() {
alert(resData);
}
// -->
</script>
</head>
<body>
住所検索<br>
郵便番号:<input type="text" id="zipcode" size="10" onkeyup="searchAddress()" maxlength="7"><br>
都道府県:<input type="text" id="pref" size="10"><br>
市区町村:<input type="text" id="city" size="10"><br>
テスト:<input type="text" id="test2" size="10"><br>
<input type="button" value="確認" onclick="btnKakunin()">
</body>
</html>
package jp.hoge;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.WebContext;
public class Testdwr {
public Map<String,Object> getZipdata(String data) {
//DWR2.0ではuk.ltd.getahead.dwr.ExecutionContextは非推奨になってるので変更
WebContext wContext = WebContextFactory.get();
HttpSession session = wContext.getSession();
if (session.getAttribute("test2") == null) {
session.setAttribute("test2", data);
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("pref","北海道");
map.put("city","札幌市");
map.put("test2",session.getAttribute("test2"));
return map;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="Testdwr" scope="session">
<param name="class" value="jp.hoge.Testdwr">
</param>
</create>
</allow>
</dwr>
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
たとえばdwrのdwr.jar追加したのに404な時はプロジェクトを「更新」する。たぶん通る。
DWRの設定方法
DWRが実現する次世代AJAX(後編)
DWR紹介プレゼン用資料みたい・・・こちら
はまった理由
2008/1現在、MacOSXのJVMのバージョンは最新で5.0。自分のwebアプリケーションはwinで6.0で開発。
UnsupportedClassVersionErrorはバージョン違いのために実行できないためだった。
対処
Eclipse上で
プロジェクトの設定/Javaコンパイラー/
コンパイラー準拠レベル 5.0
生成された.classファイルの互換性 5.0
に変更。
Javaのビルドパス/JREシステムライブラリー
代替JRE JVM1.5.0(MacOSX Default)
これは変えてない。
プロジェクト・ファセット
Java バージョン 5.0
に変更。これを変更しないとeclipseのサーバタブでTomcatv5.5サーバが作れない。
*はじめはjdbcドライバのパスが通ってないかと思ったが、それではなかった。
余談だが、とりあえず動かすだけなら、jdbcドライバの置き場はたぶんどこでもいい。CLASSPATHに追加すればいいので。
今回はTomcat/web_App/アプリケーション/WEB-INF/lib/にいれた。あたりまえだが、JavaなのでwinのPostgreSQLから持ってきたjdbcドライバでもちゃんと動く。
結論
MacOSXで動かす可能性があるときは、バージョンに注意。やっちまったら、コンパイルしなおす。
やっぱりどうしてもMacはバージョンアップは遅くなるので。
理工系研究者のための Mac OS X, Windows, Linux メモ PostgreSQLを使ってみよう
上記サイトの記述で迷ったこと
make前のこと
./configure --enable-multibyte=EUC_JP --enable-syslog --prefix=/usr/local/pgsql
とコンソールでいれる。MacOSXのSafariと表示が違うが、たぶんこっちでいいんじゃないだろうか。mekeは長い。
ファイル名に.shはつけとく
ファイル名の「.sh」は、なくてもスクリプトの実行には関係ありません。「.sh」を付けなくてもよいのですが、そうなるとファイル名だけではCコンパイラなどを使って作ったバイナリの実行ファイルと区別できません。
先頭につけるもの
#!/bin/sh
ファイルに実行属性を付ける
chmod u+x hogehoge.sh
実行する時は./が必要
./hogehoge.sh
参考
Eclipseのインストールと日本語化
みかんの箱日記
インストールしたもの
Eclipse IDE for Java EE Developers - Mac OS X (3.3 Europa)
展開するとき
これで展開しないと「ここじゃ実行できない」みたいなエラーが出た。ターミナルで解凍する事。
tar xvf ./eclipse-jee-europa-fall2-macosx-carbon.tar
*tar.gzでないのでzはいらない。
pleiades
eclipse.iniファイルの中。Macの場合eclipse.iniは「Eclipse.appを右クリック>パッケージの内容を表示>Contents>MacOS>eclipse.ini」にある。
↓絶対パスになってる(これでいけた)
-javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=no.mnemonic
*no.mnemonicは(F) のようなニーモニックを非表示にすること。こういうの気にするの、Macユーザらしいよな。もちろん消した。
参考
CreativeStyle Mac OS X(Leopard)にTomcatをインストール
Mac OS XでTomcat (Java ServletとJSP)
以上の記事で戸惑ったところ
インストール
ターミナルを起動します。まず最初にダウンロードしたファイルが存在するディレクトリにcdコマンドで移動します。そして以下のコマンドを実行し、ダウンロードしたファイルを「/usr/local/tomcat」ディレクトリに移動させます。
mkdir /usr/local/tomcat
/usr/local 以下は管理者ユーザ(MacOSXいうところの)はmkdirでディレクトリを作れないので、sudoすること。
一般ユーザからでも簡単に使えるようにするため、「/usr/local/tomcat/」内のディレクトリの所有者権限を変更します。
$ sudo chown -R kkadowaki:staff jakarta-tomcat-5.0.28/
sudoだと通らなかったので、rootになる。当たり前だがユーザ名間違えてるとだめ・・・。
MacOSX10.4
MacOSX では、デフォルトの設定で、Unix の root 権限を使用できません。
そのため、このままでは Unix のアプリケーションで一般的な”/usr/local/”などにファイルを置く
ソフトウエアはインストールできません。NetInfo マネージャを用いて、ルート権限の利用許可を
設定する必要があります。
NetInfo マネージャによるルート権限の利用許可
これで、Terminal から
$ su
Passward: <--Keyboard から入力しても見えません
以降、ルート権限(スーパーユーザー)で全ての操作が可能になります。
の、はずだがならないので、su - (ハイフンは現在のユーザの環境にroot権限をつける意味)する。
元のユーザに戻る場合は、
$ exit
単一のコマンドのみをルート権限(スーパーユーザー)で実行する場合は、
$ sudo xxxxx
su
substitute user ログイン後、一時的にユーザを変更する Unix コマンド。主に root 権限が必要な
コマンドの実行に先立って使用。root の password を聞かれる。exit で元のユーザに戻る。
sudo
sudo mkdir xxxx のように、root 権限の必要なコマンドを一行で実行。root の password を聞か
れる。exit は必要ない。
ライブラリをTomcat の\webapps\WEBアプリケーション\WEB-INF\lib に追加したのに、NoClassDefFoundErrorが出る場合、eclipse側でうまくwebAppライブラリが追加できてない事がある。
eclipseのビルド・パスの構成の「webAppライブラリー」に追加されてない時は、その点があやしい。その場合、プロジェクトエクスプローラのWEB-INFのlibに直接、ライブラリ(.jar)をドラッグ&ドロップすれば追加される。

ビルド・パスの構成の「webAppライブラリー」は動的にライブラリを追加する感じになっているが、どうもこれが効いてないようだ。ちなみにcommon\libにいれても動くことは、動く。JDBCドライバなんかはこちらで共有した方が安全という意見もあり。
補足:(今回の場合関係ないが)、クラスローダーの順番も大事らしい。
--クラスローダの階層構造----------------------------------------------
システムクラスローダ(rt.jar などを読み込む)
L Tomcatののクラスローダ(servlet.jar など)
L Webアプリケーション毎のクラスローダ(WEB-INF/lib,classes)
-----------------------------------------------------------------------------
クラスローダには親子関係があります。
そこで以下の制約が生まれます
・子クラスローダから親クラスローダのクラスは見える
・親クラスローダから子クラスローダのクラスは見えない
これにより複数の子クラスローダで同じ名前のクラスを別々の空間で読み込むことができる仕組みになっています。
今回の場合 Web アプリケーションのクラスローダで読み込まれるクラスを、親クラスローダから読み込めないために発生します。
なので、JDBCドライバを使いたいクラスが存在するのと同じかそれより親のクラスローダでJDBCドライバが読み込めないといけません。
出典
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28912&forum=12&3
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37347&forum=12&5
if (name.equals("") ){
}
という感じ、まず文字列の比較は=でなく「.equals」。
そしてStringはカラの場合、nullではなくて、「””(カラ文字)」になるため。