H2データベースを埋め込みで使っている。
読み取りはOkだが、どうやら、一つのテーブルに複数アクセスあるとロックが
かかる?という情報がサイトに出ている。
そのせいだろうか、selectはokでもdelete,insertがうまくいかない。
いろいろ調べてみると、どうやらJavaのConnectionにはcommitというメソッドがあり
これがロックを解除してくれるらしい。早速ためしてみたら、delete、insertもできるようになった。commitなどというメソッドはMysqlでは使ったことがなかったので、わからなかった。データベースもいろいろあってなかなか大変。
2017年7月3日月曜日
2017年7月1日土曜日
Strutsでのファイルの読み書き
ファイルの読み書きは通常のサーブレットでは、できたのが、Actionだとできなくなっていた。
http://d.hatena.ne.jp/kawam/20060816
上記のサイトが詳しかった。これを参考に修正したところうまくアクセスできるようになりました。
thiis.getServlet().getServletContext().getRealPath
とすればいいようだ。
http://d.hatena.ne.jp/kawam/20060816
上記のサイトが詳しかった。これを参考に修正したところうまくアクセスできるようになりました。
thiis.getServlet().getServletContext().getRealPath
とすればいいようだ。
2017年6月29日木曜日
StrutsでJSPに一行に複数のデータがあるもの(List)を表示するには(Group Session)
Group Sessionのデータベースアクセスのサンプルを参考にいろいろ試してみた。
Strutsで Jsp表示にlogic:iterateなるものがあるけれど
これを使って、GroupModeのリストを表示したいと思いいろいろやってみたが
情報が少なくて苦労する。
結局http://www.ne.jp/asahi/hishidama/home/tech/struts/logic_iterate.html
のサイトが一番参考になりました。
<logic:iterate id="item" name="YoteiForm" property="gpList" type="jp.groupsession.v2.cmn.dao.GroupModel" >
<bean:write name="item" property="groupName"/><br>
</logic:iterate>
といった感じでやってみたら、うまくいきました。
YoteiAction:
YoteiForm yoteiForm = (YoteiForm)form;
ArrayList<GroupModel> gpList = gpDao.selectGroupNmList(usrSid);
yoteiForm.setGpList(gpList);
return map.getInputForward();
YoteiForm:
ArrayList<GroupModel> gpList_ = new ArrayList<GroupModel>();
public void setGpList(ArrayList<GroupModel> gpList) {
gpList_ = gpList;
}
public ArrayList<GroupModel> getGpList() {
return gpList_ ;
}
といった感じです。
Strutsは脆弱性の問題で、Springに移行しつつあるようですが、いまだにCOBOLやVB6が使われているように、しばらくは残るのだろうと思われます。新規で使うことはないにしても、カスタマイズする必要性はしばらく続きそうです。
フレームワークを使いこなせるようになるまでには、まだまだ道は険しいようです。
Strutsで Jsp表示にlogic:iterateなるものがあるけれど
これを使って、GroupModeのリストを表示したいと思いいろいろやってみたが
情報が少なくて苦労する。
結局http://www.ne.jp/asahi/hishidama/home/tech/struts/logic_iterate.html
のサイトが一番参考になりました。
<logic:iterate id="item" name="YoteiForm" property="gpList" type="jp.groupsession.v2.cmn.dao.GroupModel" >
<bean:write name="item" property="groupName"/><br>
</logic:iterate>
といった感じでやってみたら、うまくいきました。
YoteiAction:
YoteiForm yoteiForm = (YoteiForm)form;
ArrayList<GroupModel> gpList = gpDao.selectGroupNmList(usrSid);
yoteiForm.setGpList(gpList);
return map.getInputForward();
YoteiForm:
ArrayList<GroupModel> gpList_ = new ArrayList<GroupModel>();
public void setGpList(ArrayList<GroupModel> gpList) {
gpList_ = gpList;
}
public ArrayList<GroupModel> getGpList() {
return gpList_ ;
}
といった感じです。
Strutsは脆弱性の問題で、Springに移行しつつあるようですが、いまだにCOBOLやVB6が使われているように、しばらくは残るのだろうと思われます。新規で使うことはないにしても、カスタマイズする必要性はしばらく続きそうです。
フレームワークを使いこなせるようになるまでには、まだまだ道は険しいようです。
2017年6月23日金曜日
eclipseでgroupsessionのコンパイル
グループセッションでは、サイトでソースも公開されており、プラグインの作り方もでているので、試してみた。久々に、tomcatの設定をしたため、だいぶ試行錯誤が必要だった。
最初うまくいかなかったが、原因はクリーン処理してからビルドしたことだった。必要なリソースファイルが、消えてしまってうまくいかなかったようです。classesフォルダの中をクリーンしてしまってはだめなようです。
HDDでは、最新のeclipseがきつくなっています。SSDで使うことでだいぶストレスが緩和されるようになりました。
1 eclipseの最新版をセット。tomcatつきだと、何かと便利
2 tomcat7を使ってみた webappsの中に目的のプロジェクタのフォルダを作成
gsessionという名称で作成。
念のため、最初にソースなしのものを作成し、さらにソース版をコピーした。(同一ファイルはスキップさせるようにして)
3 eclipseのwrokspace切り替えでtomcatのwebappsを指定
4 eclipse のファイルシステムからプロジェクトを開くをクリック>ディレクトリ>さきほどのtomcatの中のgsessionフォルダを指定
あとは、サイトの説明にあるように
*WEB-INF/LIBのライブラリの登録、tomcatのライブラリ登録、JREの登録
*コンパイラを1.6にする等(1.7や1.8でもOkなような気もしますが。。)
*WEF-INF/pluginの中の各プラグインの中のsrcフォルダを、ソースフォルダとして登録が必要
サイトの説明にないこととして
*ビルド結果の出力先として、ディフォルト出力フォルダー gsession/WEB-INF/classes の設定が必要です。(プラグイン追加の場合はこちらには追加ならないようですが)
*WEB-INF/plugin/commonなどフォルダの中にMessage.propertiesがあるものも、ソースフォルダとして登録しておいたほうがいいようです。
プラグインの作成について
サイトの説明でほほできますが、build.xmlの中の設定で、ビルドエラーを回避するため
<property name="SRC.ENC" value="UTF-8" />と修正する必要がありました。
最初うまくいかなかったが、原因はクリーン処理してからビルドしたことだった。必要なリソースファイルが、消えてしまってうまくいかなかったようです。classesフォルダの中をクリーンしてしまってはだめなようです。
HDDでは、最新のeclipseがきつくなっています。SSDで使うことでだいぶストレスが緩和されるようになりました。
1 eclipseの最新版をセット。tomcatつきだと、何かと便利
2 tomcat7を使ってみた webappsの中に目的のプロジェクタのフォルダを作成
gsessionという名称で作成。
念のため、最初にソースなしのものを作成し、さらにソース版をコピーした。(同一ファイルはスキップさせるようにして)
3 eclipseのwrokspace切り替えでtomcatのwebappsを指定
4 eclipse のファイルシステムからプロジェクトを開くをクリック>ディレクトリ>さきほどのtomcatの中のgsessionフォルダを指定
あとは、サイトの説明にあるように
*WEB-INF/LIBのライブラリの登録、tomcatのライブラリ登録、JREの登録
*コンパイラを1.6にする等(1.7や1.8でもOkなような気もしますが。。)
*WEF-INF/pluginの中の各プラグインの中のsrcフォルダを、ソースフォルダとして登録が必要
サイトの説明にないこととして
*ビルド結果の出力先として、ディフォルト出力フォルダー gsession/WEB-INF/classes の設定が必要です。(プラグイン追加の場合はこちらには追加ならないようですが)
*WEB-INF/plugin/commonなどフォルダの中にMessage.propertiesがあるものも、ソースフォルダとして登録しておいたほうがいいようです。
プラグインの作成について
サイトの説明でほほできますが、build.xmlの中の設定で、ビルドエラーを回避するため
<property name="SRC.ENC" value="UTF-8" />と修正する必要がありました。
eclipse4.6へのtomcat plugin
tomcat pluginはマーケットプレイスからはうまくインストールできなかった
https://sourceforge.net/projects/tomcatplugin/files/
こちらから zipファイルをダウンロードして
これをヘルプの新規ソフトウエアインストール>追加>アーカイブでzip指定
https://sourceforge.net/projects/tomcatplugin/files/
こちらから zipファイルをダウンロードして
これをヘルプの新規ソフトウエアインストール>追加>アーカイブでzip指定
2017年6月5日月曜日
three.js
javascriptにもさまざまな、ライブラリがある。
three.jsは、3D表示に特化したライブラリ。
サンプルプログラムに、地球を表示するものがあった。
地球の自転軸は23.4°ほど、公転面の垂直方向に対して傾いているが
このように、回転軸を傾けて動かす方法がなかなかわからなかった。
var axis = new THREE.Vector3(0.3,0.7,0);で、傾いた回転軸のベクトルaxisを決め
three.jsは、3D表示に特化したライブラリ。
サンプルプログラムに、地球を表示するものがあった。
地球の自転軸は23.4°ほど、公転面の垂直方向に対して傾いているが
このように、回転軸を傾けて動かす方法がなかなかわからなかった。
var axis = new THREE.Vector3(0.3,0.7,0);で、傾いた回転軸のベクトルaxisを決め
group.rotateOnAxis (axis, Math.PI/100); で球体を回転させる
という手順でうまくいった。
ただ、北極、南極を軸にして回転させるまでにはいかなかった。そのためには、もう少し工夫が必要なようだ。
https://rasp.cld9.work/py/earth
※若干、バグがあり、修正2017/6/17
https://rasp.cld9.work/py/earth
※若干、バグがあり、修正2017/6/17
var axis = new THREE.Vector3(0.397,0.918,0);
としました。このベクトルは単位ベクトルにする必要ありました。
そうしないと、回転している間に形がゆがむようでした。
としました。このベクトルは単位ベクトルにする必要ありました。
そうしないと、回転している間に形がゆがむようでした。
Struts
Strutsを少しさわってみた。
フレームワークというのは、暗黙の決まり事みたいなものが多いと感じる。
そうしないと、グループで仕事をするときに統一とれなくなるのかもしれない。
railsやspringでは、「設定より規約」という方針があるようだけど、そういった
方針へ移行している感じがする。
たとえばstruts-config.xmlで
<message-resources parameter="MessageResources"/>
としてリソースを指定するけど、実際のファイル名はMessageResources.propertiesだったりする。
この場合、WEB-INF/src/MessageResources.propertiesという位置になければならない。
フレームワークというのは、暗黙の決まり事みたいなものが多いと感じる。
そうしないと、グループで仕事をするときに統一とれなくなるのかもしれない。
railsやspringでは、「設定より規約」という方針があるようだけど、そういった
方針へ移行している感じがする。
たとえばstruts-config.xmlで
<message-resources parameter="MessageResources"/>
としてリソースを指定するけど、実際のファイル名はMessageResources.propertiesだったりする。
この場合、WEB-INF/src/MessageResources.propertiesという位置になければならない。
登録:
投稿 (Atom)