俊星的BLOG

          2010年10月25日 #

          實現變更統計

          1、在本地數據庫中創建如下表:
          -- Create table
          create table TMP_CR_PERSONS
          (
            SPECIALTY     VARCHAR2(50),
            USER_GROUP    VARCHAR2(50),
            USER_NAME     VARCHAR2(50),
            USER_CATEGORY VARCHAR2(50)
          )

          2、創建DBLINK:
           
            create database link LK2PMS connect to XXX identified by XX
            using '(DESCRIPTION =
              (ADDRESS_LIST =
                (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.5.99)(PORT = 1521))
              )
              (CONNECT_DATA =
                (SERVER = DEDICATED)
                (SERVICE_NAME = oradb9)
              )
            )'

          3、創建視圖,查詢變更清單:
          CREATE OR REPLACE VIEW V_TMP_CR_LIST AS
          SELECT D.CHANGE_REQUEST_CODE,
                 D.PROJECT_NAME,
                 D.PRODUCT_NAME,
                 D.MODULE_NAME,
                 D.TYPE,
                 D.PRIVILEGE,
                 D.PROPOSE_TIME,
                 WF.TRANSACTOR,
                 WF.TASKNAME,
                 P.SPECIALTY,
                 P.USER_GROUP,
                 P.USER_CATEGORY
            FROM PMS_CHANGE@lk2pms D,
                 (SELECT MAX(ID) ID
                    FROM WFT_FLOWCONTROL@lk2pms WF
                   WHERE WF.WORKFLOWID = 'ChangeRequest'
                   GROUP BY WF.WORKID) MX,
                 WFT_FLOWCONTROL@lk2pms WF,
                 TMP_CR_PERSONS P
           WHERE WF.ID = MX.ID
             AND WF.WORKID = D.CHANGE_REQUEST_ID
             AND D.CHANGE_REQUEST_CODE LIKE 'CR%'
             AND WF.TRANSACTOR = P.USER_NAME
             AND D.STATE NOT IN ('結束','終止','拒絕');


          4、創建統計視圖:
          CREATE VIEW V_TMP_CR_STAT AS
          SELECT T.USER_GROUP, T.USER_NAME, COUNT(V.CHANGE_REQUEST_CODE) TOTAL
            FROM V_TMP_CR_LIST V, TMP_CR_PERSONS T
           WHERE V.TRANSACTOR(+) = T.USER_NAME
           GROUP BY CUBE(T.USER_GROUP, T.USER_NAME);

          posted @ 2010-11-22 09:09 俊星 閱讀(297) | 評論 (0)編輯 收藏

          切換IE8中碰到的問題

          1、當然是訪問老系統中的,應該都采用兼容視圖
          2、在訪問網公司系統的時候,出現內存不能寫的錯誤提示,讓后直接頁面加載失敗,解決辦法是,找到用SOGOU瀏覽器加載頁面后,發現需要安裝JITDSign這個插件,所以手工找到JITDSign.cab,解壓后直接運行“regsvr32  JITDSign.ocx”,再刷新頁面,OK了。

          3、其他問題暫未發現。

          posted @ 2010-11-10 10:04 俊星 閱讀(346) | 評論 (0)編輯 收藏

          發布FWMS

          1、利用命令“D:\FWMS\code\trunk\main\ear\ejb>dir /a:d /b”,列舉出所有的EJB模塊清單

          2、結合上面的清單,結合正則“^(.*)$”,替換為“<ant antfile="${FWMS_code}/ear/ejb/$1/META-INF/build.xml" dir="${FWMS_code}/ear/ejb/$1/META-INF" target="ejbdoclet"/>”形式,并將得到的ant元素清單放置到工程下build.xml的“Generating_Code”target中。

          3、基于如下正則,利用UE批量替換properties文件中的project.path:
          查找:(project.path.*)
          目標:project.path=../../../APP-INF/classes;../../../APP-INF/lib/activation.jar;../../../APP-INF/lib/ant.jar;../../../APP-INF/lib/apachepoi.jar;../../../APP-INF/lib/axis.jar;../../../APP-INF/lib/axis-ant.jar;../../../APP-INF/lib/bsh2.0.jar;../../../APP-INF/lib/classes12.zip;../../../APP-INF/lib/commons-
          文件:build.properties
          路徑:D:\FWMS\code\trunk\main\ear\ejb\
          (注意需要選中搜索子目錄項)

          4、上述完成之后,執行build_code.bat 即可完成EJB的編譯

          5、設置ct-config.xml中相關內容,最后是啟動weblogic 并設置數據源,同時發布應用。

          6、發布啟動weblogic的時候,報“java.lang.OutOfMemoryError: PermGen space”異常,在C:\bea\weblogic92\common\bin的commEnv.cmd中,查看到其內存設置為“set MEM_ARGS=-Xms128m -Xmx256m”;在C:\bea\user_projects\domains\fwms_domain\bin下startWebLogic.cmd中,添加“set MEM_ARGS=-Xms256m -Xmx512m -XX:MaxPermSize=128m”,適當加大內存。

          posted @ 2010-11-09 11:59 俊星 閱讀(465) | 評論 (0)編輯 收藏

          ActiveMQ初探

          Apache ActiveMQ是一個高性能的消息代理,實現了JMS 1.1。
          目前的最新版本是5.4.1
          1、下載相關包,并將activemq-all-5.4.1.jar加入到工程中。

          2、運行bin目錄下的actionmq.bat文件,啟動broker,在conf下是相關的配置文件,例如activemq.xml

          3、可通過訪問http://localhost:8161/admin/來查看啟動情況,有可通過netstat -an|find "61616" 來查看端口,因為通過查看activemq.xml中即可發現傳輸連接器即配置的占用61616端口:
          <transportConnectors>
                  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
           </transportConnectors>

          4、編寫消息接收類:
          import javax.jms.Connection;
          import javax.jms.ConnectionFactory;
          import javax.jms.Destination;
          import javax.jms.JMSException;
          import javax.jms.MessageConsumer;
          import javax.jms.Session;
          import javax.jms.TextMessage;

          import org.apache.activemq.ActiveMQConnection;
          import org.apache.activemq.ActiveMQConnectionFactory;

          public class JmsReceiver {
              
          public static void main(String[] args) throws JMSException {
                  ConnectionFactory connectionFactory 
          = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                          ActiveMQConnection.DEFAULT_PASSWORD, 
          "tcp://localhost:61616");
                  Connection connection 
          = connectionFactory.createConnection();
                  connection.start();
                  Session session 
          = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                  
          // 需要在activemq的控制臺中創建queue:testqueue
                  Destination destination = session.createQueue("testqueue");
                  MessageConsumer consumer 
          = session.createConsumer(destination);
                  
                  
          while (true{
                      TextMessage message 
          = (TextMessage) consumer.receive(1000);
                      
          if (null != message)
                          System.out.println(
          "收到消息:" + message.getText());
                      
          else
                          
          break;
                  }

                  session.close();
                  connection.close();
              }

          }


          5、編寫消息產生類:
          import javax.jms.Connection;
          import javax.jms.ConnectionFactory;
          import javax.jms.DeliveryMode;
          import javax.jms.Destination;
          import javax.jms.JMSException;
          import javax.jms.MessageProducer;
          import javax.jms.Session;
          import javax.jms.TextMessage;

          import org.apache.activemq.ActiveMQConnection;
          import org.apache.activemq.ActiveMQConnectionFactory;

          public class JmsSender {
              
          public static void main(String[] args) throws JMSException {
                  ConnectionFactory connectionFactory 
          = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                          ActiveMQConnection.DEFAULT_PASSWORD, 
          "tcp://localhost:61616");
                  Connection connection 
          = connectionFactory.createConnection();
                  connection.start();
                  Session session 
          = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                  Destination destination 
          = session.createQueue("testqueue");
                  MessageProducer producer 
          = session.createProducer(destination);
                  producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                  sendMsg(session, producer);
                  session.commit();
                  connection.close();
              }


              
          public static void sendMsg(Session session, MessageProducer producer) throws JMSException {
                  
          // 創建一條文本消息
                  TextMessage message = session.createTextMessage("你好 ActiveMQ!");
                  producer.send(message);
                  System.out.println(
          "");
              }

          }


          6、通過訪問http://localhost:8161/admin/,在queue中創建testqueue,先執行消息發送類,后執行消息接收類,借看看到消息接收類的如下執行結果:
          收到消息:你好 ActiveMQ!
          收到消息:你好 ActiveMQ!

          (執行多次消息發送類,則會接受到多條“你好 ActiveMQ!”消息)

          posted @ 2010-10-28 17:53 俊星 閱讀(2908) | 評論 (1)編輯 收藏

          CAS初步配置

          此處的CAS是指Central Authentication Service,也即統一認真服務,這里采用的是JASIG提供的相關服務端及客戶端類庫,結合TOMCAT進行測試。

          1、下載相關的服務器端和客戶端類庫,官網是:http://www.jasig.org/cas/,目前我采用的是:
          服務器端:cas-server-3.3.4-release.zip
          客戶端:cas-client-2.0.11.zip

          2、配置TOMCAT的SSL,具體可見上一篇博文:
          在%CATALINA_HOME%/conf/server.xml中,添加:
          <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
                         maxThreads="150" scheme="https" secure="true"
                         clientAuth="false" sslProtocol="TLS"
                         keystoreFile="F:\eclipse\workspace\httpc\tomcat3.keystore"
                         keystorePass="123456"/>
          配置OK后,可通過訪問“https://localhost:8443/examples/servlets/servlet/HelloWorldExample”來進行驗證

          3、配置CAS服務器端:
          將cas-server-3.3.4-release.zip中modules文件夾下的cas-server-webapp-3.3.4.war的解壓到TOMCAT的webapps目錄下。
          重啟TOMCAT后,可以通過訪問“http://localhost:8080/cas/login”并輸入相同的用戶名密碼來進行驗證。
          另:需要特別說明,cas應用中默認配置的是SimpleTestUsernamePasswordAuthenticationHandler,該處理類只要保持用戶名、密碼一直即可通過驗證。

          4、配置CAS客戶端:
          在webapps\examples\WEB-INF中,對web.xml添加如下內容:
          <filter>
             <filter-name>CAS Filter</filter-name>
             <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
             <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
               <param-value>https://localhost:8443/cas/login</param-value>
             </init-param>
             <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
               <param-value>https://localhost:8443/cas/serviceValidate</param-value>
             </init-param>
             <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
               <param-value>localhost:8080</param-value>
             </init-param>
            </filter>
            <filter-mapping>
             <filter-name>CAS Filter</filter-name>
             <url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
            </filter-mapping>
          同時,將cas-client-2.0.11.zip中的casclient.jar,拷貝到webapps\examples\WEB-INF\lib中,重啟TOMCAT即可進行驗證。

          5、驗證CAS:
          a、在瀏覽器中訪問“http://localhost:8080/examples/servlets/servlet/HelloWorldExample”
          b、基于前面配置的過濾器,瀏覽器會定向CAS的認證頁面“https://localhost:8443/cas/login?service=http%3A%2F%2Flocalhost%3A8080%2Fexamples%2Fservlets%2Fservlet%2FHelloWorldExample”
          c、在CAS的認證頁面中輸入相同的用戶名密碼test/test后,執行登錄
          d、瀏覽器提示安全警告,點擊確定后即轉入到“http://localhost:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-1-xWK9nwArDLbjCwYiXOqu-cas”,同時頁面打出“Hello World”,配置成功。

          posted @ 2010-10-26 14:36 俊星 閱讀(742) | 評論 (0)編輯 收藏

          HTTP Client及HTTPS初探

          HTTP Client是一個客戶端HTTP協議的類庫
          1、首先是下載APACHE HTTP CLIENT相關的JAR,目前我引入到工程中的相關文件時:
          httpclient-4.0.3.jar
          httpcore-4.0.1.jar
          httpmime-4.0.3.jar
          commons-codec-1.4.jar
          commons-logging-1.1.1.jar

          JAR包之前的引用關系在README等相關說明中已有。

          2、下載并運行TOMCAT,我下載的是TOMCAT6(對應的是JDK5),主要注意的是需要配置CATALINA_HOME這個環境變量。

          3、制作服務器端證書,下面是我一個示例:
          C:\Documents and Settings\dingjunxing>keytool -genkey -alias tomcat3 -keystore F
          :\eclipse\workspace\httpc\tomcat3.keystore
          輸入keystore密碼:  
          123456
          您的名字與姓氏是什么?
            [Unknown]:  localhost
          您的組織單位名稱是什么?
            [Unknown]:  sz
          您的組織名稱是什么?
            [Unknown]:  sz
          您所在的城市或區域名稱是什么?
            [Unknown]:  shenzhen
          您所在的州或省份名稱是什么?
            [Unknown]:  guangdong
          該單位的兩字母國家代碼是什么
            [Unknown]:  cn
          CN
          =localhost, OU=sz, O=sz, L=shenzhen, ST=guangdong, C=cn 正確嗎?
            [否]:  y
          輸入
          <tomcat3>的主密碼
                  (如果和 keystore 密碼相同,按回車):  
          123456

          4、根據服務器證書導出客戶端證書,有兩種方式,一種為采用IE,下面提供一個利用KEY TOOL導出的方式:
          keytool -export -file tomcat3.cert -alias tomcat3 -keystore F:\eclipse\workspace\httpc\tomcat3.keystore
          注意:上面命令行必須進入到
          %java_home%/jre/lib/security中。

          5、將獲取到的客戶端證書導入:
          C:\Program Files\Java\jdk1.5.0_15\jre\lib\security>keytool -import -keystore cac
          erts 
          -file F:\eclipse\workspace\httpc\tomcat3.cert
          輸入keystore密碼:  
          123456
          Owner: CN
          =localhost, OU=sz, O=sz, L=shenzhen, ST=guangdong, C=cn
          發照者: CN
          =localhost, OU=sz, O=sz, L=shenzhen, ST=guangdong, C=cn
          序號: 4cc55438
          有效期間: Mon Oct 
          25 17:56:08 CST 2010 至: Sun Jan 23 17:56:08 CST 2011
          認證指紋:
                   MD5:  E4:2E:BE:AC:A1:5D:E0:
          95:C7:95:93:BF:B3:F3:EE:5E
                   SHA1: F8:9A:BB:FA:C8:C5:8A:D2:FA:
          98:A1:95:64:65:42:9A:8F:0B:4A:7D
          信任這個認證? [否]:  y
          認證已添加至keystore中

          6、TOMCAT中相關設置,主要是修改CATALINA_HOME下的conf/server.xml,在其中添加如下一個連接器:
          <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
                         maxThreads
          ="150" scheme="https" secure="true"
                         clientAuth
          ="false" sslProtocol="TLS" keystoreFile="F:\eclipse\workspace\httpc\tomcat3.keystore" keystorePass="123456"/>    

          7、運行相關代碼:
          package org.apache.http.examples.client;

          import java.io.File;
          import java.io.FileInputStream;
          import java.security.KeyStore;

          import org.apache.http.HttpEntity;
          import org.apache.http.HttpResponse;
          import org.apache.http.client.methods.HttpGet;
          import org.apache.http.conn.scheme.Scheme;
          import org.apache.http.conn.ssl.SSLSocketFactory;
          import org.apache.http.impl.client.DefaultHttpClient;

          /**
           * This example demonstrates how to create secure connections with a custom SSL
           * context.
           
          */
          public class ClientCustomSSL {

              
          public static void main(String[] args) throws Exception {
                  DefaultHttpClient httpclient 
          = new DefaultHttpClient();

                  KeyStore trustStore 
          = KeyStore.getInstance(KeyStore.getDefaultType());
                  FileInputStream instream 
          = new FileInputStream(new File("tomcat3.keystore"));
                  
          try {
                      trustStore.load(instream, 
          "123456".toCharArray());
                  } 
          finally {
                      instream.close();
                  }

                  SSLSocketFactory socketFactory 
          = new SSLSocketFactory(trustStore);
                  Scheme sch 
          = new Scheme("https", socketFactory, 8443);
                  httpclient.getConnectionManager().getSchemeRegistry().register(sch);

                  HttpGet httpget 
          = new HttpGet("https://localhost:8443/docs");

                  System.out.println(
          "executing request" + httpget.getRequestLine());

                  HttpResponse response 
          = httpclient.execute(httpget);
                  HttpEntity entity 
          = response.getEntity();

                  System.out.println(
          "----------------------------------------");
                  System.out.println(response.getStatusLine());
                  
          if (entity != null) {
                      System.out.println(
          "Response content length: " + entity.getContentLength());
                  }
                  
          if (entity != null) {
                      entity.consumeContent();
                  }

                  
          // When HttpClient instance is no longer needed,
                  
          // shut down the connection manager to ensure
                  
          // immediate deallocation of all system resources
                  httpclient.getConnectionManager().shutdown();
              }

          }
          運行結果正常,當然也可以通過在瀏覽器中輸入“https://localhost:8443/”的方式進行訪問。

          posted @ 2010-10-25 20:13 俊星 閱讀(1990) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 南通市| 亳州市| 永春县| 青阳县| 镇宁| 皮山县| 容城县| 林西县| 富川| 安康市| 永福县| 宁陕县| 万安县| 黔南| 弋阳县| 北川| 凤台县| 东乌珠穆沁旗| 株洲市| 崇仁县| 黄龙县| 济源市| 威信县| 大洼县| 砀山县| 曲靖市| 甘德县| 高邮市| 新密市| 肇庆市| 贺州市| 镇远县| 永善县| 三原县| 奎屯市| 平凉市| 小金县| 蚌埠市| 内丘县| 英吉沙县| 紫金县|