日々精進

新しく学んだことを書き留めていきます

2015-09-01から1ヶ月間の記事一覧

Power Shell ServerにSSHでログインしようとすると「ssh_exchange_identification: Connection closed by remote host」エラー

IT

原因は他にSSHでログインしている人がおり、最大同時接続数に達していたため。Power Shell Serverのログにその旨のメッセージが出ている。 最大同時接続数は無料版では1固定で、2以上にするのは有料版でないとできないらしい。 しょうが無いのでfreeSSHdなど…

safariで画面の拡大縮小をさせない / 長押し時のメニューを表示させない

web

画面の拡大縮小をさせないためには以下のmetaタグを追加する。 <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> </head> 長押し時のメニューを表示させないためには以下をCSSに追加する。 body { -webkit-touch-callout: none; // 長押し時のメニューを表示させない -webkit-user-select: none; // 長押しで文字…

JSFでvalidationフェーズでのvalidation結果がOKだったかどうかを判別する

FacesContext#isValidationFailed() でわかる。 参考: http://docs.oracle.com/javaee/6/api/javax/faces/context/FacesContext.html#isValidationFailed%28%29

websphereにwarをデプロイしても一部のリソースファイルがデプロイされない

すごい謎な現象だった。。一部のファイルがデプロイされないことがあり、デプロイされないファイルの共通点が無いので原因がわかりにくかった。 原因は、GoogleDriveアプリが作る「Icon」という名前のファイルがresources/imgフォルダにあったこと。Iconファ…

JSFのui:repeatで各行に付けたボタンのクリックイベントハンドラにindexかオブジェクトを渡す

JSFではui:repeatを使って繰り返しを表現することが多い。 以下のようにするとイベントハンドラにindexを渡せる。 <ui:repeat items="#{Hoge.items}" var="item" varStatus="stat"> <h:commnadButton action="#{Hoge.hogeAction( stat.index )}" value="押してね♪"/> </ui:repeat> 以下のようにするとイベントハンドラにオブジェクトを渡せる。

Javaでresources下のファイルを読み込む

resources下にあるテキストファイルをなるべく簡単にまるっと読み込む方法。BufferedReaderとか使って1行ずつ読み込むのはだるい。。 以下のようにするとpathはresourcesからの相対パスで指定出来るし、まるっと読み込めるのでいい感じ。 String path = getC…

JavaでXMLをparseする

JavaだとXPathとかSelectorとか使えないからXMLからデータを取り出しづらい。。 XMLParserはAbstractクラスなので、DOMParserを使う。 コード例は以下。 DOMParser parser = new DOMParser(); InputStream bais = new ByteArrayInputStream(xmlString.getByt…

IntelliJ+JRebelでデバッグ実行すると「Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Default Executor-thread-8"」エラー

原因はJVMに割り当てられているメモリが足りないため。 Run/Debug Configuration > VM options に -XX:MaxPermSize=128m を追加すると直った。 参考:

IntelliJ+JRebelでデバッグ実行している時にブレークポイントに止まらない、変数がwatchウィンドウで見られない

原因はコードがコンパイルされないことだった。何らかのきっかけで前回コンパイル時からコードが変更されているのに、変更が検知されず 何度コンパイルしても新しいコードがコンパイルされない状態になっていた。 以下の環境で発生した。 IntelliJ、JRebel、…

iOS Safariでキャッシュを削除する

web

設定アプリを開き、Safari > Advanced > Website Data > Clear...ボタンをタップ で消える。 Safariから消せるようにしてほしいなぁ。 参考: How to Clear Safari History And Website Data in iOS 9 or iOS 8 for iPhone and iPad1e3)g=1e3;else if(200>~~…

JSFで「Note, this message is only sent, because project stage is development and no other error listeners are registered.」エラー

ボタンをクリックした時に掲題のエラーが出た。原因はajaxリクエストと通常のPOSTリクエストを重複して送ってしまっているため。 通常のリクエストを送信するコード(onlick="this.form.submit()"とか)を削除したら直った。 参考:

w3c validatorでxhtmlをvalidateすると「DOCTYPE Override in effect!」警告が出る

web

でxhtmlのチェックをしたところ以下の警告が出た。 The detected DOCTYPE Declaration "" has been suppressed and the DOCTYPE for "XHTML 1.0 Transitional" inserted instead, but even if no errors are shown b…

WAS 8.5.5.7でimmediate=trueにするとFlashが保持するデータがすべてnullになる

原因はMyFacesのバグ。WASのJSF実装はApache MyFacesをベースにしていくらか追加実装をして実装しているっぽい。 FlashImplクラスはMyFacesのものを使っているようだが、MyFaces 2.1.8にはimmediate=trueにすると遷移先画面でFlash#getの結果がnullになって…

Windowsでlsofする(ポートを使っているプロセス名を調べる)

IT

netstat -aon | findstr 0.0:<ポート番号>で出たプロセス番号をtasklist | findstr <プロセス番号>に渡すとわかる。 Macよりちょっとめんどいなぁ。 参考: https://diary.sshida.com/20120701-Windows%207%E3%81%A7lsof%20-i%3A80%E3%81%A8%E5%90%8C%E3%81%…

特定のサーバ経由でリクエストを送信する

IT

Proxyでブロックされているサイトを見たい場合、日本からのアクセスが制限されているサイトを見たい場合、特定のIPからのリクエストしか通さないようになっている開発用サーバにリクエストを送りたい場合などに使える方法。 SSH PortForwardingを使うと特定…

IntelliJのUpdate applicationを実行すると「intellij update application operation not supported by vm」エラー

原因は、クラスのシグネチャが変更後にUpdate applicationを実行したため。 JVMはクラスのシグネチャが変わらない限りにおいてHot Swapできるようになっている。 クラスのシグネチャが変更後にUpdate applicationしたい場合はJRebelを使う。 でもJRebelは高…

WASにinstallするfeatureを追加したら、IntelliJでビルドエラーが出る問題

基本的なことなんだけど、IntelliJからビルドする時はgradleでビルドしてないということを意識してなかった。。 なのでWASのfeatureを追加したら、追加したfeatureに対応するjarを取り込んでからコードをビルドするようにしてやらないといけない。 gradle cl…

IntelliJでMANIFEST.MFから依存するJarを取り込んでビルドできるようにする

上記記事でfeatureManagerからWASにインストールしたFeatureのjarをコンパイル時に取り込む方法を紹介したが、 これを使ってできたapi.jarにはFeatureのjar本体は含まれず、そのパスのみ入っている。 何も設定しないとIntelliJはパスからjar本体を読み込んで…

IntelliJでビルドすると、lombokで生成されるはずのメソッドがビルドエラーになる

設定でAnnotation Processorを有効にしないとメソッド生成してくれないらしい。 Settings -> Compiler -> Annotation Processors -> Enable annotation processingにチェックをつけるとビルドできた。 参考:

JSFで「Target Unreachable, identifier '...' resolved to null」エラー

原因はWEB-INF/beans.xmlが無いことだった。全く設定する必要が無い場合でも空ファイルを置かないといけないらしい。なんだそれ。。

IntelliJのArtifactの設定等についているexplodedの意味

通常Artifactはwarファイル等に固めるところ、固めずそのまま配置するという意味。 初見でどういう意味か分からなかった。。 参考: https://www.jetbrains.com/idea/help/configuring-web-application-deployment.html

wsdl2javaはApache CXFとApache Axis2に含まれる

両方SOAPサービスを実装するためにFWだけど、 両方にWSDLからJavaクラスを生成するwsdl2javaが含まれていて、微妙に仕様が違う。 Apache Axis2のwsdl2javaからサーバ実装のスケルトンを生成したところAxis2のクラスを継承していて使いづらかった。 CXFの方が…

gradleで既存のsourceSetへの異存があるsourceSetを追加するとコンパイルエラーになる

既存のsourceSetのクラスへの依存関係を設定しないといけないが、そのやり方が分からなくて困った。 以下のようにclasspathを追加すると、src/main下にあるクラスをsrc/intTest下のクラスから利用できる。 sourceSets { intTest { java { compileClasspath +…

JavaEEで使用するAPIが増えてもprovidedCompileを増やさないでよくする

IT

普通はJSF, JAX-RSなどの機能毎にapi jarが作られており、各機能を使う場合はapi jarをprovidedCompileで取り込まないといけない。 が、libertyのinstallFeatureコマンドでインストールしたすべての機能のapi jarを自分で作ってそれを取り込むという方法があ…

safari onlineが半額セール中ですね

IT

日本時間の12/2 17:00ぐらいまでっぽい。safari onlineは契約してすごく良かったのでおすすめです

macからwindowsにremote desktopで接続した時にローカルのフォルダをremoteのwindowsにマウントする

IT

こんな便利な機能があったとは。。 以下手順でマウントできる。 接続先の一覧(My Desktops)で接続先を選択 Editをクリック Redirectionをクリック +ボタンをクリック マウントするローカルのフォルダを選択する これでファイルの共有が楽になるなぁ。 参考…

gradleでzipを作る時にinto('./')とするとwindowsで解凍できなくなる

IT

gradleのear pluginは複数プロジェクト構成にしないと使えなさそうなので自分でearファイルを作ることにした。 earファイルの中は以下のような構造にすればいい。 ./name.war ./META-INF/application.xml ./META-INF/MANIFEST.MF 以下のようにearタスクを作…

gradleのtaskの依存関係を削除する方法がないっぽい

wsdl2java pluginがwsdl2javaタスクをcompileJavaタスクに依存させているせいで buildする度にjavaファイルが生成されて困る。 コマンドラインからはgradle build -x wsdl2javaのようにしてタスクを切れるけど毎回-x書くのはいやだ。。 compileJava.taskDepe…

VPC作成時のオプション

AWS

サブネットに S3 のエンドポイントを追加 プライベートサブネットからS3にアクセスする場合、直接アクセスは出来ないため パブリックサブネット上のプロキシ経由でアクセスする。このプロキシをエンドポイントという。 DNS ホスト名を有効化 DNS名を付ける。…

gradleでwsdlからjavaファイルを生成する

Web SphereのドキュメントにはAntタスクを実行する〜とか書いてるけど、Ant使いたくない。。 のでGradleプラグインを探したところ、wsdl2javaプラグインがあったのでこれで生成した。 gradle-wsdl-pluginというプラグインもあったけどこっちはうまく生成でき…