たちまち。

即席で役に立つこと。

IM-Jugglingで設定したモジュールが反映されない

IM-Jugglingでモジュールの追加チェック(あるいは外す)を行った後、

warを作成してもモジュールが反映されないことがある。

 

生成されたwarの「WEB-INF/juggling.structure.txt」を確認しても、

チェックしたはずのモジュールが[x]になっていたりする。

 

解決としては、juggling.imでモジュールのチェックを変更した後に保存すると出てくる

前回からの変更理由を記述すると、うまくいった。

 

juggling.imの履歴を確認すると、しばらく履歴が追加されていなかったが

変更理由を記載することでここに入ってきた。

 

もちろんコメントなしの履歴も残っているんだけど、

一定数を超えるといけないのだろうか。条件がよくわからないが、とりあえず変更コメントを書けばよさそうだ。

failと出るだけでintra-martが起動しない

f:id:aposke:20210120180214j:plain

 

intra-martを起動しても503エラーとなる。

起動時には明確なエラーが出力されず、以下のようなログだけが出ている。

 

[INFO] c.c.s.w.WebApp - WebApp[production/webapp/default/imart] fail

 

 

また、Resin停止時には以下のログが出力される。

 

[WARN] c.c.s.w.WebApp - java.lang.NullPointerException[WARN] c.c.s.w.WebApp - [] java.lang.NullPointerExceptionjava.lang.NullPointerException: null at jp.co.intra_mart.imbox.internal.message.impl.QueueingMessageSender$SenderWorkerManager.setEnabled(QueueingMessageSender.java:311) at jp.co.intra_mart.imbox.internal.message.impl.QueueingMessageSender$SenderWorkerManager.stop(QueueingMessageSender.java:272) at jp.co.intra_mart.system.servlet.PlatformServletContextListener.contextDestroyed(PlatformServletContextListener.java:53) at com.caucho.server.webapp.WebApp.stop(WebApp.java:5077) at com.caucho.server.webapp.WebApp.destroy(WebApp.java:5116) at com.caucho.env.deploy.DeployController.destroyInstance(DeployController.java:810) at com.caucho.env.deploy.DeployController.stopImpl(DeployController.java:794) at com.caucho.env.deploy.AbstractDeployControllerStrategy.stop(AbstractDeployControllerStrategy.java:85) at com.caucho.env.deploy.DeployController.stop(DeployController.java:574) at com.caucho.env.deploy.DeployContainer.stop(DeployContainer.java:412) at com.caucho.server.webapp.WebAppContainer.stop(WebAppContainer.java:1249) at com.caucho.server.host.Host.stop(Host.java:829) at com.caucho.server.host.Host.destroy(Host.java:850) at com.caucho.env.deploy.DeployController.destroyInstance(DeployController.java:810) at com.caucho.env.deploy.DeployController.stopImpl(DeployController.java:794) at com.caucho.env.deploy.AbstractDeployControllerStrategy.stop(AbstractDeployControllerStrategy.java:85) at com.caucho.env.deploy.DeployController.stop(DeployController.java:574) at com.caucho.env.deploy.DeployContainer.stop(DeployContainer.java:412) at com.caucho.server.host.HostContainer.stop(HostContainer.java:556) at com.caucho.server.cluster.ServletService.stop(ServletService.java:1715) at com.caucho.server.cluster.ServletSystem.stop(ServletSystem.java:81) at com.caucho.env.service.ResinSystem.stop(ResinSystem.java:598) at com.caucho.env.service.ResinSystem.destroy(ResinSystem.java:615) at com.caucho.env.shutdown.ShutdownSystem.shutdownImpl(ShutdownSystem.java:296) at com.caucho.env.shutdown.ShutdownSystem.access$200(ShutdownSystem.java:49) at com.caucho.env.shutdown.ShutdownSystem$ShutdownThread.run(ShutdownSystem.java:478)

 

 

WEB-INF/conf/log 配下のめぼしいログの出力レベルをDebugに設定したところ、原因が分かった。

様々な原因があるかもしれないが、今回においてはDB(Oracle)への接続に失敗していた。

Oracle側のサービスは起動していたが、リスナーが起動していなかった。

 

DBへの接続を見直すことで解決した。

 

デスクトップ版IM-Noticeの通知バルーンが表示されない

デスクトップ版IM-Noticeをインストールし、設定を行ったが、通知バルーンが表示されない。

表示設定で「ダイアログで通知する」をonにしても何も出てこない。

通知履歴には入ってくるので、サーバとの通信はできている模様。

 

Windowsタスクバーのプロパティから見ても通知はonになってる。

 

解決は、なんのことはなく、

端末のOSを再起動したら表示されるようになった。

 

WEB-INF/conf/im-notice-mq-config.xmlの設定が関与していた。

<endpoint>について、サーバアドレスを記載する必要がある(初期値はlocalhost)。クライアントから接続できるアドレスに修正することで解消。

 

追記。

 

それでもバルーンが表示されないときは、endpointで見ているポート番号40608が塞がっている可能性がある。ファイアウォールの設定なども見直し対象に含めるとよい。

SQL*Plusでintra-mart用の表領域とユーザを作成するコマンドのメモ

SQL> connect / as sysdba
接続されました。

SQL> create tablespace imart_user
2 datafile 'C:\oracle\oradata\orcl\imart_user.dbf' size 100m
3 autoextend on next 5m maxsize unlimited;

表領域が作成されました。

 

SQL> create user imart_user
2 identified by imart_password
3 default tablespace imart_user
4 temporary tablespace temp;
ユーザーが作成されました。

 

SQL> grant connect,resource,create view to imart_user;

権限付与が成功しました。

OracleインスタントクライアントODBC接続設定メモ

1.OracleインスタントクライアントをサイトからDLする。basicとodbcが必要。

2.両zipを同じフォルダに解凍する

3.解凍したフォルダにpathを通す

4.コマンドプロンプト(管理権限)で以下を実行

  odbc_install JA

5.odbcのzipの中から「sqresus.dll」を再配置する(なぜか消えるので)

6.環境変数TNS_ADMINを作成し、解凍したフォルダを設定する

7.解凍したフォルダ直下に「tnsnames.ora」を新規作成する。中身のサンプルは以下。

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

8.ファイル名指定実行から「odbcad32」を指定してODBC設定を開く

9.追加からインスタントクライアントを指定

10.接続設定する。TNS Service Nameのドロップダウンが選択できること。

   選択できない場合はTNS_ADMINやtnsnames.oraの設定を見直す。

   ※見直し後は、一度ODBC設定を閉じて再度開き直さないと反映されないので注意。

iAPログイン画面アクセス時にNoClassDefFoundError

ログイン画面にアクセスすると500エラーと表示され、ログには以下のようなエラーが出力される。

 

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder                        at com.caucho.server.dispatch.FilterManager.createFilter(FilterManager.java:234)                        at com.caucho.server.dispatch.FilterMapper.buildDispatchChain(FilterMapper.java:169)                        at com.caucho.server.webapp.WebApp.buildInvocation(WebApp.java:4119)                        at com.caucho.server.webapp.WebAppContainer.buildInvocation(WebAppContainer.java:798)                        at com.caucho.server.host.Host.buildInvocation(Host.java:753)                        at com.caucho.server.host.HostContainer.buildInvocation(HostContainer.java:319)                        at com.caucho.server.cluster.ServletService.buildInvocation(ServletService.java:1064)                        at com.caucho.server.dispatch.InvocationServer.buildInvocation(InvocationServer.java:250)                        at com.caucho.server.dispatch.InvocationServer.buildInvocation(InvocationServer.java:223)                        at com.caucho.server.http.AbstractHttpRequest.buildInvocation(AbstractHttpRequest.java:1609)                        at com.caucho.server.http.AbstractHttpRequest.getInvocation(AbstractHttpRequest.java:1582)                        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:820)                        at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1353)                        at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1309)                        at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1293)                        at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1201)                        at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:997)                        at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117)                        at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93)                        at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169)                        at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61)                        at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)                        at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)                       Caused by: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder                        at jp.co.intra_mart.foundation.router.RouterFactory.getRouter(RouterFactory.java:73)                        at jp.co.intra_mart.foundation.router.RoutingFilter.init(RoutingFilter.java:50)                        at com.caucho.server.dispatch.FilterManager.createFilter(FilterManager.java:204)                        ... 22 more

 

 

原因としては、ルーティング系の設定ファイルに不備がある可能性。

 

今回は、routing-jssp-configのxmlファイルを編集したのだが、

そのxmlファイル内に構文エラー(ダブルクォート抜け)があった。

 

よく見たら起動中のログにもxmlが解析できない旨のエラーが発生していた。