【Eclipse】Tomcat サーバーエラー
突然サーバーエラーでシステムに繋がらなくなりました。
コンソールに出ているエラーは
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が
いるので、戦いは続きそうです・・・