蔣德的JAVA備忘錄

          JAVA備忘錄

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            14 隨筆 :: 4 文章 :: 5 評論 :: 0 Trackbacks

          2008年6月12日 #

          weblogic10.3 這個應用服務器是oracle 收購Bean 公司后新出的版本.今天試用下,發現不錯.將JNDI的配置過程一一記錄,
          1: 啟動weblogic 10.3 采用默認密碼進入
          2:在JDBC-DATASOURCE 中假建一個應用數據源.
          3:在 Configuration-->Connection Pool-->Advanced 中的  一定要溝上,不然會測試通不過
          4:填寫測試的表名    等信息

          5:編寫測試的JSP文件

          <!doctype html public "-//w3c//dtd html 4.0 transitional//en"   "http://www.w3.org/TR/REC-html40/strict.dtd">
          <%@ page import="java.sql.*"%>
          <%@ page import="javax.sql.*"%>
          <%@ page import="javax.naming.*"%>
          <%@ page session="false"%>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <title>Test JNDI</title>
          </head>
          <body>
              
          <%
              out.print(
          "  Test Jndi Begin !!    ");
              DataSource ds 
          = null;
              
          try {
                  InitialContext ctx 
          = new InitialContext();
                  ds 
          = (DataSource) ctx.lookup("jdbc/mysql");
                  Connection conn 
          = ds.getConnection();
                  Statement stmt 
          = conn.createStatement();
                  String strSql 
          = " select * from tb_adminuser";
                  ResultSet rs 
          = stmt.executeQuery(strSql);
                  
          while (rs.next()) {
                      out.println(rs.getString(
          4));
                  }

                  out.print(
          "Test is over");
              }
          catch (Exception ex) {
                  out.print(
          "ERROR:" + ex.getMessage());
                  ex.printStackTrace();
              }

          %>
          </body>

          </html>

          6:編寫 JUNIT
          package com.XXXXXX.framework.datasource;

          import java.sql.Connection;
          import java.sql.ResultSet;
          import java.sql.Statement;
          import java.util.Hashtable;

          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.sql.DataSource;

          import junit.framework.TestCase;

          public class TestJndi extends  TestCase{

              
              
          public void testJndi() throws Exception{
                  Hashtable ht 
          = new Hashtable();          
                  ht.put(Context.INITIAL_CONTEXT_FACTORY,
          "weblogic.jndi.WLInitialContextFactory");
                  ht.put(Context.PROVIDER_URL, 
          "t3://localhost:7001");
                  Context initial 
          = new InitialContext(ht);
                  DataSource ds 
          = (DataSource) initial.lookup("jdbc/mysql");
                  Connection connect 
          = ds.getConnection();

                  Statement stmt 
          = connect.createStatement();   
                  String strSql 
          = " select * from tb_adminuser";   
                 
                  ResultSet rs 
          = stmt.executeQuery(strSql);   
                  
          while(rs.next()){   
                      System.out.println(rs.getString(
          2));
                    }
            

              }



          }

          其中在編寫JUNIT 的時候,有一個插曲.我在網上看到別人的代碼是用t3://localhost:7007

          我也照COPY,結果出現錯誤如下:
          javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://localhost:7007: Destination unreachable; nested exception is: 
              java.net.ConnectException: Connection refused: connect; No available router to destination]
              at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:
          40)
              at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:
          783)
              at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:
          367)
              at weblogic.jndi.Environment.getContext(Environment.java:
          315)
              at weblogic.jndi.Environment.getContext(Environment.java:
          285)
              at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:
          117)
              at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:
          667)
              at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:
          288)
              at javax.naming.InitialContext.init(InitialContext.java:
          223)
              at javax.naming.InitialContext.
          <init>(InitialContext.java:197)
              at com.etong.framework.datasource.TestJndi.testJndi(TestJndi.java:
          21)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
          39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
          25)
              at java.lang.reflect.Method.invoke(Method.java:
          597)
              at junit.framework.TestCase.runTest(TestCase.java:
          168)
              at junit.framework.TestCase.runBare(TestCase.java:
          134)
              at junit.framework.TestResult$
          1.protect(TestResult.java:110)
              at junit.framework.TestResult.runProtected(TestResult.java:
          128)
              at junit.framework.TestResult.run(TestResult.java:
          113)
              at junit.framework.TestCase.run(TestCase.java:
          124)
              at junit.framework.TestSuite.runTest(TestSuite.java:
          232)
              at junit.framework.TestSuite.run(TestSuite.java:
          227)
              at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:
          76)
              at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
          38)
              at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
          38)
              at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
          460)
              at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
          673)
              at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
          386)
              at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
          196)
          Caused by: java.net.ConnectException: t3:
          //localhost:7007: Destination unreachable; nested exception is: 
              java.net.ConnectException: Connection refused: connect; No available router to destination
              at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:
          203)
              at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:
          153)
              at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:
          352)
               
          27 more
          Caused by: java.rmi.ConnectException: Destination unreachable; nested exception is: 
              java.net.ConnectException: Connection refused: connect; No available router to destination
              at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:
          464)
              at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:
          315)
              at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:
          251)
              at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:
          194)
              at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:
          225)
              at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:
          188)
               
          29 more


          換成 t3://localhost:7001
          測試成功.看來不懂就到網上亂COPY代碼,還是不行的

           

          我已經在配置文件里配置了context.java.naming.factory.initial,而在這里還提示這個錯誤
          關鍵看這里

          Error initializing JtaTransactionConfig while looking up UserTransaction (javax.transaction.UserTransaction). Cause: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial


          jvm里加上一個參數,測試一下

          -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory


          運行通過

          這個參數在:右鍵項目--Run as --Open Run Dialog--ArgumentsVM arguments中添加即可


          posted @ 2009-08-23 10:41 蔣德 閱讀(5190) | 評論 (1)編輯 收藏

          一直用Xdoclet 來管理項目的配置文件,今天用Myeclipse 建新了一個工程,使用Myeclipse 的Strtus1.2的相關包,發現生成相關的配置文件中<action-mappings> 部分竟然是空白的,百思不得其解,反復測試后,發現取消Myeclipse 的Strtus1.2的相關包,使用以前的Struts .jar又可以生成.
           記錄下,日后再找到原因

          到google 里一找,發現自己幾年前還記錄了這個,2009年我又遇到了這個問題
          發現,在xdoclet 里生成struts的配置文件時,一定要在lib下面存在
          struts.jar
          commons-collections-3.0.jar
          commons-digester.jar
          commons-logging-1.0.4.jar
          否則就可能不生成,也不出錯.

          莫名其妙的.

          posted @ 2008-12-17 20:54 蔣德 閱讀(147) | 評論 (0)編輯 收藏

          2008年真是個多事之秋,從年初的雪災,股災 到 3.15事件,4.28撞車,5.12 紋川地震,水災一次又一次的襲擊著中國人民.
          網絡世界也不例外,6月份的端午節注定是個難忘的日子.
          1前言
               **** 旗下的網站隨著電子商務的大潮流越來越受領導的重視,商務的成功運作,鋪天蓋地的廣告投入,讓這個這不知名的小網站一下子變得重要起來,網站作為集團公司客戶關懷的主要渠道,已被人悄悄的盯上了.一場悄無聲息的戰爭就這樣子開始了

          2發現病毒
                  6月5號,這幾天心情不錯,工作交接的也算順利.10點左右,前臺的編輯人員給我發來消息,運營部門要求加入統計的JS腳本代碼,其實我最煩這些工作了,統計的JS代碼誰敢保證沒有問題呢?網站一但出現不穩定的時候,我就要冒冷汗,何況在這之前網站已出現過好幾次問題了.ARP攻擊.DDOS攻擊.一輪接一輪.想些這些就害怕.電話再次溝通,確認.我在服務器上加載了關于統計的JS代碼.接下來無事,我繼續著交接文檔
                  從食堂回來很開心,呵呵,一邊吃飯一邊享受美麗風景的機會是不多的.在公司的豬圈里胡亂的吹水.天花亂墜的.TNND,也不知群主怎么想的,好好的名不起,偏起了個豬圈.不過在這個群里聊天還是很開心的.聊累了就睡,也不用去理會什么.
                    一覺醒來,習慣性的打開網站,卡巴斯基猛的跳出個窗口提示惡意的js 我當時還沒回過神來,確認后敢緊打電話確認前臺的靜態頁面是否有發布.確認后回想今天的修改,就加載了統計的JS,不會這么巧吧,難道是因為這個中招了?我敢緊要求前臺發布人員刪除相關的JS代碼.
          結果依舊.卡巴斯基歡快的提示著惡意JS ,然后一個個的進行阻止. 從這點來看,我還是很中意卡巴斯基這個軟件的.果然不5分鐘,運營部門來電話了.說網站全面出現病毒.要求處理.當然我就急了.以現在的訪問量,要是不盡快處理,不知多少用戶會受到影響.我電話通知發布系統的同事,要求重新發布新的靜態頁面.同時通知***部門的項目負責人.要求對系統進行查毒.
                  一切都在緊張有順的進行著.我等待著結果,同時也在想,到底是哪能兒出錯了呢?統計的JS?系統被人攻破?半小時后,***部門反饋消息服務器沒有發現病毒.我的心隨之繃緊了.如果服務器沒有發現病毒,就可能是WEB應用上有問題了.我查找今天剛發布的文件.好多.不確定具體在哪兒出問題了.只能一個一個的去查看源碼.網站上病毒提示依然存在.急得我就像熱窩里的螞蟻團團轉.文件一個一個的對比,檢查JS里的可疑代碼.2個小時過去了,沒有一點進展.還是沒有發現源頭.突然想到,整站都出現了惡意的JS代碼,肯定是共公文件出問題了.我電話詢問前臺發布人員,公共JS存放目錄.果然發現有個文件被修改了.馬上改了回來,卡巴斯基停止的報告.掛碼被清除出去了.終于松了一口氣,收拾東西回家.

          3更換服務器
              6號早上,好不容易的擠上64路車,自從取消上沙車站后,在下沙上64路就難了.站的位置要不是好.上車都是個問題
          4事件升級
          5網安公司
          6切按平臺

          posted @ 2008-06-12 10:50 蔣德 閱讀(275) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 安溪县| 华亭县| 福建省| 重庆市| 丹凤县| 岳池县| 额尔古纳市| 龙游县| 昭觉县| 普安县| 镇坪县| 沙雅县| 晋城| 图木舒克市| 铁力市| 沁源县| 陕西省| 桂阳县| 犍为县| 梁山县| 金溪县| 额济纳旗| 朝阳县| 长治县| 萨嘎县| 广州市| 南通市| 南涧| 东兴市| 东港市| 安岳县| 阜新| 汝阳县| 永登县| 柳林县| 邹城市| 色达县| 萨嘎县| 安龙县| 桃园县| 阿克苏市|