#nomenubar
*2006年度第20回ゼミ(2006年10月19日)資料 [#y5619a92]

CENTER:[[10月12日(ゼミ#19)>Lab/2006/1012]] << 10月19日(ゼミ#20) >> [[10月26日(ゼミ#21)>Lab/2006/1026]]
CENTER:[[研究関係Wikiトップへ戻る>Lab]]

#contents

**11/08 [#q9e8d129]

ToDo

-Picnicとの接続テスト
-Event Listが表示されない原因
-Webカメラからのレスポンスがおかしい理由
-アルマジロへの移植

**11/07 [#f31fa3bd]

-Webカメラからの画像取得に成功・Webカメラの操作にも成功
--画像はサーバーに保存されるだけでブラウザに出ない
--操作も成功はするが表示される画面が変(HTMLの冒頭数バイトが切れてる?)

DeviceController内でよく例外エラーが発生する部分(640行付近)→try〜catchを挿入

 attrs.put("Attr",params.get(0).toString());
 attrs.put("Name",params.get(1).toString());
 attrs.put("Dest",params.get(2).toString());
 attrs.put("Port",Integer.decode(params.get(3).toString()));

AccessServlet内でWebカメラ情報取得時に例外エラーが発生する部分(301行付近)→try〜catchを挿入

 File dataout = new File("/usr/local/tomcat/webapps/ROOT/servlet/data/" + res_from_dc.attr + ".xml");
 (中略)
 dataout.createNewFile();

**11/1 [#v610ef09]

-AccessServletのdoGet内ではreturnすればすぐプログラムが終了する
--return直前にout.printlnでエラー内容を出力すれば読むことができる!
--DeviceControllerのReadData内でrtn.return_strにエラー内容を出力する

**10/29 [#u38c7af6]

-500エラーでAccessServletが動作しなかったのはjavaのバージョンが古かったため
--.zshrcでjavaおよびjavacを最新のJDKのalias指定してコンパイルし直し
--500エラーの画面で「サーブレットインスタンスを割り当て中のエラー」と出る時は環境を確認
--tomcat起動時に実行されるsetclasspath.shに正しいclasspathが設定されていなかったのが原因。http://d.hatena.ne.jp/karia/20061029#1162113331
-out.println("なんとか");でHTMLに文字が出力される模様
--getListメソッド内ではダメらしい(コンパイルの段階でエラー扱い)
---return kekkaとして文字列を返しているのでkekka = kekka + "なんとか";として対処
-文字のエンコード関係で警告が大量発生
--動作には影響しないのでjavac時に-nowarnで抑制
--"-encoding EUC-JP"でも抑制されるが、どちらにしろ日本の出力は全部???になる
--"PrintWriter out = res.getWriter();"より前にsetContentTypeが無かったのが原因だった http://www.ingrid.org/java/jserv/i18n/corruptedchar.html#location-1

***AccessServletに直接アクセス [#x72f6f2c]

-Translation error - javax.xml.transform.TransformerConfigurationExceptionという表示はXmlTrans.class内のエラー表示
-「スタイルシートをコンパイルできませんでした」はXML・XSLのファイル名をわざと間違ったものにしても変化なかった→ファイルの置き場所が悪いor何故かちゃんと読めてない
-''サーバー上のフルパスでxml、xslを指定するとちゃんと動作''→以降はDevice.xml直の時と同じ

***Device.xml上で「クエリ送信」ボタンを押した場合 [#f406d4f6]

-ArrayList関連のエラーが出る→DeviceController.java内のDevice.xmlの位置を修正すればOK

 java.lang.NumberFormatException: For input string: ""
	java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
	java.lang.Integer.parseInt(Integer.java:468)
	java.lang.Integer.valueOf(Integer.java:526)
	java.lang.Integer.decode(Integer.java:919)
	DeviceController.ReadData(DeviceController.java:643)
	AccessServlet.doGet(AccessServlet.java:184)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

-DeviceController内643行目
--ポート番号と思われる数字の取得に失敗(おそらく空文字が帰って来てる)

→DeviceControllerの643行目をtry〜catchで囲んだ

 java.lang.NullPointerException
	java.util.StringTokenizer.<init>(StringTokenizer.java:182)
	java.util.StringTokenizer.<init>(StringTokenizer.java:204)
	AccessServlet.doGet(AccessServlet.java:200)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

AccessServletの200行目:''aSt = new StringTokenizer(res_from_dc.html_source, "%" );''

***Device.xml上でEvent Listをクリックした場合 [#wd5ef087]

 java.net.ConnectException: Connection refused
	java.net.PlainSocketImpl.socketConnect(Native Method)
	java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	java.net.Socket.connect(Socket.java:516)
	java.net.Socket.connect(Socket.java:466)
	java.net.Socket.<init>(Socket.java:366)
	java.net.Socket.<init>(Socket.java:179)
	AccessServlet.doGet(AccessServlet.java:109)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

-AccessServletの109行目→"Socket socket = new Socket( "localhost", 5001 );"

***Device.xml上でData Exportをクリックした場合 [#ae0cc7f6]

-"ERR - Save exception java.io.FileNotFoundException: /servlet/_tmp_ (No such file or directory)"と表示される
--表示してる場所はDeviceController経由・External.class内の''return "ERR - Save exception " + e;''の部分
--実際にhttp://192.168.5.227:8080/servlet/_tmp_が存在しても同じエラー

**10/17 [#g779af28]

-IndexOutOfBoundsExceptionは例外の一種。ArrayListにアクセスする際に、インデックスナンバーが要素数より大きい場合やマイナスの場合に投げられる。
--http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000247.html

-W-ZERO3に接続されているセンサーデバイスを、W-ZERO3上で一括して操作・データ蓄積・サーバに転送できるシステム?(XMLで定義を記述可能な)

-学校鯖にインストールされているのはTomcat5.5.20
--修論で使用しているのはTomcat3.3.1

**10/16 [#n9cfda76]

AccessServletは動作したが直接アクセスするとエラーが出る

→Device.xmlに操作画面らしきものがある(操作しても500エラーだが)

**10/13 [#x18ff804]

HelloWorldServletの動作にはWEB-INF/web.xmlに以下の記述が必要

    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/servlet/HelloWorldServlet</url-pattern>
    </servlet-mapping>

**ToDo [#m5616852]

-目的?
-ネットワークカメラを探す

**ゼミメモ [#v6571693]

-何をテーマにするかを明確にする
--アプリ開発が目的ではない

-ケーブル延長は意味無い
--ネットワーク経由のUSBデバイス接続方法がある
-GPS Bluetooth
-Webカメラ
-BeSilent(サーバーのインストール先として)

**関連ページ [#yaa0d579]

-[[Lab]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS