日々精進

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

sshでログインしようとすると「we did not send a packet, disable method」エラー

ssh <ip address> -vvvT でログインしようとすると、ログの下の方に「we did not send a packet, disable method」 というエラーメッセージが出てログインできない。

原因は.sshフォルダのパーミッションだった。 .sshのパーミッションが744になっていたのでログインできてなかった。 パーミッションを以下のように設定したらログインできた。

サーバ側 sudo chmod 700 .ssh sudo chmod 600 authorized_keys

クライアント側 sudo chmod 700 .ssh sudo chmod 600 id_rsa (秘密鍵)

何度SSHにハマるんだ俺は。。

参考:

SSH の自動ログインメモ

d.hatena.ne.jp

Servletを実行すると「servlet class was found, but a resource injection failure has occurred」エラー

Servletクラスのフィールドで@Injectアノテーションを使ってオブジェクトを詰めているところで エラーが発生した。 原因はCDIのバージョンがビルド時と実行環境で異なることが原因(たぶん) JavaEE7環境では動かなかったけど、JavaEE6環境で動かすと動いた。

参考:

WebSphere:IBM WebSphere Application Server V8.0 Beta:CDI problem - IBM WebSphere Application Server V8.0 Beta Forum

MacにDockerをインストールしてWASをその上で動かす

  • Get started with Docker for Mac - DockerからDockerをダウンロードしてインストールする
  • 以下コマンドを実行する docker run --name test -h test -p 9043:9043 -p 9443:9443 -d \ ibmcom/websphere-traditional:install

これだけでWASが動くとは。。Docker便利だなぁ。 WARのデプロイはAdmin consoleから行う。 Admin consoleのユーザIDはwsadmin。パスワードは以下コマンドを実行したら表示される。 docker exec <コンテナ名> cat /tmp/PASSWORD

参考:

https://hub.docker.com/r/ibmcom/websphere-traditional/

WASのWebコンソールのURL、WAS Profileについて

ローカルでWASを起動している場合、以下をブラウザから参照すればWebコンソールを表示出来る。 https://localhost:9043/ibm/console/logon.jsp

WASのProfileが何のことかよく分からなかったけど、 どうも環境別に作るものっぽい。テスト環境用、本番環境用とか。 アプリサーバの実行ファイルは各Profileで共有するけど、設定ファイルとかスクリプトとかは それぞれ別になる。

でも、WAS Liberty ProfileとFull Profileは実行ファイルからして違うし、意味合いが違いそうだなぁ。 用語の意味をもっと統一してほしい。。

参考:

IBM WebSphere Application 用語の概説 (IBM Lotus Connections 管理者向け)

Dockerコンテナ内のWAS Libertyにwarをデプロイする(ホストからファイルをコピーする)

docker ps でDockerのコンテナ一覧が表示される。 psだからdockerコンテナ内のプロセス一覧かなと思ったけど違った。。 以下のコマンドでwarをコピーするとデプロイできる。

sudo docker cp my.war <コンテナID>:~/wlp/usr/servers/defaultServer/dropins/`

Docker便利だなぁ。 参考:

qiita.com

wsimportから生成したJARを取り込むと、すべてのクラスがdefault packageに入っていて参照出来ない

以下のコマンドで生成したJARの中のクラスがdefault packageに入ってしまっていた。

wsimport -clientjar api.jar IF.wsdl

macでJDK1.8に入っているwsimportを使った場合は大丈夫だったが、windowsでJDK1.7に入っているwsimportを使った場合、同じコマンドを実行しているのにdefault packageに入る現象が発生した。 以下のコマンドを実行すると、jarでなく.javaファイルが出来るのでそれをsrc下に配置して解決した。

wsimport -s ./temp IF.wsdl

JavaEE難しい。。

参考:

docs.oracle.com