昨日まで動いていたローカル環境がいきなり動かなくなりました!
復旧までかなり時間をとられてしまいましたので備忘録的に作業を残しておきます。
突然ローカル環境に繋がらなくなった!
突然のサーバーエラーでローカル環境に繋がらなくなりました。
コンソールに出ているエラーは
SystemRuntimeException: [Ljava.lang.Object;@ba4a46[{○○○-sqlmap.xml}] at .util.MasterList.getMasterList(java:73) at gamen.login(java:257) at gamen(java:171) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.struts.beanaction.ActionInvoker.invoke(.java:16) at org.apache.struts.beanaction.DefaultActionInterceptor.intercept(.java:5) at org.apache.struts.beanaction.BeanAction.execute(:246) at org.apache.struts.action.RequestProcessor.processActionPerform(.java:431) at org.apache.struts.action.RequestProcessor.process(.java:236) at org.apache.struts.action.ActionServlet.process(1196) at org.apache.struts.action.ActionServlet.doGet(:414) Caused by: ZzzSystemRuntimeException: [Ljava.lang.Object;@1ee970[{○○○-sqlmap.xml}] at sql.SqlMapClientFactory.create(SqlMapClientFactory.java:126)
みたいな感じです。
フレームワークにiBatisを使用しているのですが、どうやらsql-mapがみれていない様子。
環境変数で解決
sql-mapファイルは存在していることを確認しているので他をあたろうと現状を整理する。
Listenerは上がっていて、Oracleには接続できている。
selectなどでDBはみれる。
そこでJavaからOracleに接続できないのかと思い、JDBCで接続可能か試す。
// Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver"); // Oracleに接続 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:Oracle", "ユーザー", "パス"); // ステートメントを作成 Statement stmt = conn.createStatement(); // 問合せの実行 ResultSet rset = stmt.executeQuery("select * from table"); // 問合せ結果の表示 while (rset.next()) { // 列番号による指定 System.out.println(rset.getString(1) + "\t" + rset.getString(2)); //System.out.println(rset.getString(1)); } // 結果セットをクローズ rset.close(); // ステートメントをクローズ stmt.close(); // 接続をクローズ conn.close();
上記の結果はちゃんとselectした結果がかえって来るんですよね~。
はて、お手上げ状態です。
動いているマシンといろいろ比較した結果PCの環境設定に違いがあることがわかりました。
「マイコンピューターを右クリック → プロパティ → システムの詳細設計 → 環境変数」を開きます。
ここのシステム環境変数にシステムのHOMEが足りなかったんですね。
HOMEを追加してやれば無事サーバーエラーがなくなりました。
しかし環境変数を追加してもまだエラーが解消されないPCがいるので、戦いは続きそうです・・・。
解決編はこちら。⇒【Eclipse】Tomcat サーバーエラー 解決編
まとめ
テストをしているときや新しくPCを設定するときって「環境変数の設定」忘れてたりしますよねー。
まだまだ戦いは続きます。