<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 119, comments - 62, trackbacks - 0, articles - 0

    2007年3月20日

    http://note.youdao.com/share/web/file.html?id=611b9b6bdf9abafbb1ee45436f50be9e&type=note

    posted @ 2015-09-18 21:04 Kevin Meng 閱讀(227) | 評論 (0)編輯 收藏

    每次都在setupconnection...的地方停住了,后來在發現原來是因為我的手機沒有插SD卡,憤的!!

    posted @ 2015-08-10 23:15 Kevin Meng 閱讀(196) | 評論 (0)編輯 收藏

    geoJOSN為UTF-8編碼,轉成shp后部分字段出現亂碼,一直找不到解決的辦法。后來裝了QGIS 1.7.4,打開geoJSON文件,注意選擇編碼為UTF-8,然后save as..,保存成shp文件,此時編碼必須選擇system就可以解決中文亂碼的問題了。

    posted @ 2012-10-22 11:53 Kevin Meng 閱讀(1490) | 評論 (0)編輯 收藏

    http://huangqiqing123.iteye.com/blog/1246882 

    posted @ 2012-08-15 12:52 Kevin Meng 閱讀(261) | 評論 (0)編輯 收藏

    以下的GPS定位代碼,在MOTO XT800,ME811,HTC S610d等手機中定位都沒有問題,但是在MOTO XT882里面就是無法定位,后來發現問題出現在紅色的代碼部分,強制改成GPS定位就可以了。
          locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
          Criteria criteria = new Criteria();
          criteria.setAccuracy(Criteria.ACCURACY_FINE);
          criteria.setAltitudeRequired(false);
          criteria.setBearingRequired(false);
          criteria.setCostAllowed(true);
          criteria.setPowerRequirement(Criteria.POWER_LOW);
          String provider = locationManager.getBestProvider(criteria, true);
          /* 每隔1000ms更新一次,并且不考慮位置的變化。 */
          locationManager.requestLocationUpdates(provider, 3000, 5, locationListener);
          //強制使用GPS定位
          //locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 5, locationListener);

    posted @ 2012-08-07 20:59 Kevin Meng 閱讀(337) | 評論 (0)編輯 收藏

    這次項目開發,運行環境的tomcat版本從5.5.12升級到了6.0.18,發現以前的項目不能跑了,訪問一個很簡單的jsp也會報錯,說無法編譯,報的錯誤就是:Only a type can be imported. com.xxx.xxx.XXX resolves to a package,意思就是說你jsp頁面上引用的那個類不存在,可是在老版本明明跑的好好的,而且另一個現象就是項目根目錄下的jsp訪問沒有問題,子目錄下就報錯,google了一下,發現這是新版本tomcat的一個變化,就是如果不指定context的話,每一個子文件夾都會被tomcat當作一個獨立的虛擬應用的,所以每個子文件夾下的jsp頁面訪問的時候,都會在它的同一層找WEB-INF里面的class,這樣當然找不到了,只有剛巧放在根目錄下的jsp文件能訪問。

    解決辦法:其實這也是自己以前寫tomcat的配置文件時候,寫法不規范造成的,以前的server.xml里面host信息代碼如下:

    <Host name="www.local.com" appBase="D://projects//myWebSite//WebContent" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Alias>192.168.1.43</Alias> 
        <Context path="" docBase="" reloadable="true">
         <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.local.com_log." suffix=".txt" timestamp="true"/>
        </Context></Host>

    這其中Context里面的docBase為空,文件路徑就靠Host里的appBase去指定,這樣tomcat認為你這個站點下沒有應用,會自動把每個文件夾當作一個虛擬應用處理。修改后的代碼片段如下:

    <Host name="www.local.com" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Alias>192.168.1.43</Alias> 
        <Context path="" docBase="D://projects//myWebSite//WebContent" reloadable="true">
         <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.local.com_log." suffix=".txt" timestamp="true"/>
        </Context></Host>

    可以看到Host里面不再指定appBase了,而是在主機下建立一個應用,應用的文件路徑通過docBase來指定,這樣就不會再產生找不到class的問題了。

    ps:tomcat的這個問題好像是從5.5.28就開始了,記得以前也曾經嘗試過升級tomcat,就發生了類似的問題,但是當時沒充裕時間去解決,就一直把問題遺留到現在。

    posted @ 2012-08-01 11:14 Kevin Meng 閱讀(520) | 評論 (0)編輯 收藏

    web開發中,我們經常需要將一個表的數據插入到另外一個表,有時還需要指定導入字段,設置只需要導入目標表中不存在的記錄,雖然這些都可以在程序中拆分成簡單sql來實現,但是用一個sql的話,會節省大量代碼。下面我以mysql數據庫為例分情況一一說明:

    兩張表:insertTest和insertTest2,前者中有測試數據
    create table insertTest(id int(4),name varchar(12));
    insert into insertTest values(100,'liudehua');
    insert into insertTest values(101,'zhourunfa');
    insert into insertTest values(102,'zhouhuajian');
    1.如果2張表的字段一致,并且希望插入全部數據,可以用這種方法:
      INSERT INTO 目標表 SELECT * FROM 來源表;
    insert into insertTest select * from insertTest2;
    2.如果只希望導入指定字段,可以用這種方法:
     INSERT INTO 目標表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 來源表;
     注意字段的順序必須一致。
    insert into insertTest2(id) select id from insertTest2;
    3.如果您需要只導入目標表中不存在的記錄,可以使用這種方法:
     INSERT INTO 目標表  
     (字段1, 字段2, ...)  
     SELECT 字段1, 字段2, ...  
     FROM 來源表  
     WHERE not exists (select * from 目標表  
     where 目標表.比較字段 = 來源表.比較字段); 
     1>.插入多條記錄:
    insert into insertTest2
    (id,name)
    select id,name
    from insertTest
    where not exists (select * from insertTest2
    where insertTest2.id=insertTest.id);
     2>.插入一條記錄:
    insert into insertTest    
    (id, name)    
    SELECT 100, 'liudehua'    
    FROM dual    
    WHERE not exists (select * from insertTest    
    where insertTest.id = 100);
    使用 dual 作表名,select 語句后面直接跟上要插入的字段的值。

    posted @ 2012-02-03 16:04 Kevin Meng 閱讀(531) | 評論 (0)編輯 收藏

    1、arcgis server安裝過程中,主體文件安裝結束,配置server 賬號時,遇到invalid password specified,對于arcgissom和arcgissoc兩個accounts,任何密碼都適合,后來想著新建另外兩個arcgissom1和arcgissoc1,通過了,再一看,原來arcgissom和arcgissoc兩個賬號在計算機管理的賬戶里已經存在。刪去后再裝就沒問題了。
    不會有問題了

    posted @ 2011-11-28 13:03 Kevin Meng 閱讀(1611) | 評論 (0)編輯 收藏

    以前的項目運行好好的,升級了ADT后,進行junit測試時出現錯誤:

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  Internal Error (classFileParser.cpp:3494), pid=7480, tid=7376
    #  Error: ShouldNotReachHere()
    #
    # JRE version: 6.0_29-b11
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode windows-amd64 compressed oops)
    # If you would like to submit a bug report, please visit:
    #   http://java.sun.com/webapps/bugreport/crash.jsp
    #

    解決辦法:
    1.選中junit測試類,右鍵 -> Run As -> Run Configurations...
    2.切換到Classpath選項欄,刪掉Bootstrap Entries里面的Android Library,然后點擊右側的Advanced.. -> Add Library -> JRE System Library,一路next即可。

    這時再運行該類,就能正常運行了。

    posted @ 2011-11-09 20:30 Kevin Meng 閱讀(2478) | 評論 (0)編輯 收藏

    字段為Datetime,獲得2011-11-05以后添加的記錄
    SELECT *  FROM geo_corporation t WHERE TO_DAYS(t.addtime)>TO_DAYS('2011-11-05')
    某一時間段內的記錄
    SELECT *  FROM geo_corporation t WHERE TO_DAYS(t.addtime)>TO_DAYS('2011-11-05') AND TO_DAYS(t.addtime)<TO_DAYS('2011-11-7')

    posted @ 2011-11-07 11:56 Kevin Meng 閱讀(259) | 評論 (0)編輯 收藏

    可以用AntiRSI,也是免費的,非常好用。

    posted @ 2010-06-24 10:52 Kevin Meng 閱讀(420) | 評論 (0)編輯 收藏

    在IBM Z60M上安裝Mac OS 10.4.8
    (1)下載[weiphone][Mac_OS][Mac OS X 10.4.8][JaS AMD-Intel-SSE2-SSE3 with PPF1 & PPF2].iso,然后通過nero刻盤。注意:盤要好,如果沒有刻錄好,安裝的時候就會出現I/O錯誤,這個折騰了我不少時間。
    (2)在XP下分出一個盤來,大概10G的空間就可以了,格式化成FAT32格式(建議用PM軟件)。
    (3)進入BISO,設為從光盤啟動,把安裝盤放入光驅,重新啟動電腦。
    (4)如果不出意外,您將進入Mac OS安裝程序。點“實用程序”-》“磁盤工具”,在這里您將看到所有的盤符,選中我們已經格式化好的磁盤,點抹掉,宗卷格式選Mac OS 擴展(日志式),格式化完后,退出磁盤工具。
    (5)再次回到安裝Mac的介紹頁面,點繼續,選中我們格式化好的盤來安裝mac,點繼續
    (6)進入安裝類型,這里很關鍵。把要安裝的打印機驅動選上(我全選),本地化語言我選簡體中文和繁體中文。JaS Intel 10.4.8 ATA kexts included必須選。然后Support for the most common hardware中的10.4.8.x600.Mobility.Support選上。其他都不要選,點下一步即可。注意,不能把所有的硬件驅動都選上,如果那樣的話可以正常安裝,但是重啟后進入Mac時會出現黑屏現象,應該是由于硬件驅動沖突造成的。
    (7)點下一步開始安裝,耐心等待,安裝完后重啟,就可以進入美麗的Mac世界了。
     
    聲明:本文只針對IBM Z60M,別的型號的機器由于硬件驅動等問題有可能會不能正常安裝。

    posted @ 2009-08-05 12:27 Kevin Meng 閱讀(327) | 評論 (0)編輯 收藏

    把jdk\bin目錄下的msvcr71.dll復制到tomcat安裝目錄的\bin下即可

    posted @ 2009-02-16 13:29 Kevin Meng 閱讀(4219) | 評論 (4)編輯 收藏

    在登陸上服務器之后,打開我的電腦,在地址欄中輸入“\\tsclient\C”就可以查看本地的C盤

    posted @ 2009-02-12 15:31 Kevin Meng 閱讀(909) | 評論 (3)編輯 收藏

    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\tempfile.tmp所有.tmp文件刪除然后再上傳。有可能需要多試幾次。
    最好用TSVN上傳而不要用Subeclipse

    posted @ 2009-02-06 16:08 Kevin Meng 閱讀(2588) | 評論 (2)編輯 收藏

    (1)安裝php_pdo.dll和php_pdo_cio.dll,在php的安裝包里面有,建議用php5.2以上版本;
    (2)安裝oracle 10g客戶端,如果你用的是oracle 9i同樣需要安裝oracle 10g客戶端,否則無法連接oracle。如果你的機器上已經安裝有oracle 9i,安裝oracle 10g客戶端對oracle 9i并沒有影響。
    (3)重新啟動機器。
    (4)用phpinfo()檢驗是否已經加載了php_pdo和php_pdo_oci擴展

    連接代碼

    [development]

    database.config.type = pdo_oci
    database.config.host=localhost
    database.config.username = szapp
    database.config.password = szapp
    database.config.dbname = ora
    database.config.port=1521




    $params = array ('dbname' => $config->database->config->dbname,
     'username' => $config->database->config->username,
     'password' => $config->database->config->password,
     'host'=>$config->database->config->host,
     'port'=>$config->database->config->port );
    $db = Zend_Db::factory ( $config->database->config->type, $params );
    $registry->set ( 'db', $db );

    posted @ 2009-01-16 13:54 Kevin Meng 閱讀(750) | 評論 (0)編輯 收藏

    步驟如下:
    1.      AP服務器上建立c:\backup文件夾(文件夾路徑客戶自己選擇)
    2.      打開dbbkup.bat-->修改紅字部分-->保存
    exp citictest/citictest@colm2 file=c:\backup\%date:~4,20%.dmp    log=c:\backup\%date:~4,20%.log
    compress=y direct=n rows=y owner='citictest'
    consistent=n constraints=y grants=y indexes=y triggers=y
    3.      將dbbkup.bat放置于c:\backup文件夾之下
    4.      控制面板-->任務計劃-->添加任務計劃-->選擇程序以進行計劃-->瀏覽-->選中dbbkup.bat-->每日執行-->選擇時間-->輸入用戶名密碼-->完成
    5.      執行時間過了之后,c:\backup文件夾下面會出現yyyy-mm-dd.dmp命名的DUMP檔案

    posted @ 2009-01-08 15:28 Kevin Meng 閱讀(265) | 評論 (0)編輯 收藏

    以前的項目用的是struts1,運行得好好的,現在改用struts2后,發現運行不到一天tomcat就出現內存溢出的錯誤。使用jProfiler分析一下,發現tomcat啟動后使用的內存就一路飆升,而且放在action里面的類根本沒有釋放掉,應該是struts出現了問題,查一下struts的配置,原來沒有配ActionContextCleanUp,在web.xml中加入
    <filter>
      <filter-name>struts-cleanup</filter-name>
      <filter-class>
       org.apache.struts2.dispatcher.ActionContextCleanUp
      </filter-class>
     </filter>
     <filter-mapping>
      <filter-name>struts-cleanup</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>
    再次用jprofiler進行分析,果然好了。

    posted @ 2008-12-11 12:44 Kevin Meng 閱讀(780) | 評論 (0)編輯 收藏

    (1)定義在web.xml中定義JSPSupportServlet
     <servlet>
      <servlet-name>JSPSupportServlet</servlet-name>
      <servlet-class>
       org.apache.struts2.views.JspSupportServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
    (2)把struts-html.tld復制到WEB-INF目錄
    (3)在頁面最前面定義標簽庫
    <#assign html=JspTaglibs["/WEB-INF/struts-html.tld"] />
    (4)在<head>中引用標簽
    <@html.base/>
     (5)特別注意,在action的配置里面type="freemarker"去掉。因為如果加type="freemarker",那么base為action的路徑,如http://localhost:8080/szmap/findpoi.go,如果去掉type="freemarker",那么base才為網頁路徑,如http://localhost:8080/szmap/find_poi.htm

    posted @ 2008-11-12 12:11 Kevin Meng 閱讀(1205) | 評論 (0)編輯 收藏

    最近需要把www.map512.cn的地圖重新進行分割一下,因為以前的地圖是通過arcIMS進行分割的,還要配置arcIMS,那煩死人,所以決定還是把以前VB+ArcEngine版本的割圖程序修改一下,改成C#+ArcEngine,改完后馬上割起來,結果發現程序運行時所耗的內存不斷提高,最后異常退出了,這說明肯定有個地方有內存溢出,剛開始以為是我代碼的問題,不斷的修改代碼,花了兩天時間還是不行,調試后發現出錯的地方在arcEngine的出圖函數output()上,于是打電話問ESRI的客服,給我的答案是沒有解決的辦法,噴飯!!!!

    昨天老肖提醒了我一下,打補丁,于是立刻給arcEngine打上了SP5補丁,果然再也沒有問題了!靠
    心得是:有事別找ESRI技術支持!:)

    posted @ 2008-10-24 10:08 Kevin Meng 閱讀(1973) | 評論 (8)編輯 收藏

    (1)點項目-》添加應用-》瀏覽,導入log4net.dll
    (2)修改app.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
          <section name="clipmapAEC.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
        </sectionGroup>
      </configSections>
      <userSettings>
        <clipmapAEC.Properties.Settings>
          <setting name="mapModelMinX" serializeAs="String">
            <value>-80000</value>
          </setting>
          <setting name="mapModelMaxX" serializeAs="String">
            <value>170000</value>
          </setting>
          <setting name="mapModelMinY" serializeAs="String">
            <value>-80000</value>
          </setting>
          <setting name="mapModelMaxY" serializeAs="String">
            <value>170000</value>
          </setting>
          <setting name="scalePara" serializeAs="String">
            <value>2</value>
          </setting>
          <setting name="tileSize" serializeAs="String">
            <value>512</value>
          </setting>
        </clipmapAEC.Properties.Settings>
        <log4net>
          <root>
            <level value="INFO" />
            <appender-ref ref="consoleApp" />
          </root>

          <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
            <param name="File" value="C:\\clipmap_log.txt" />
            <param name="AppendToFile" value="false" />
            <param name="RollingStyle" value="Date" />
            <param name="DatePattern" value="yyyy.MM.dd" />
            <param name="StaticLogFileName" value="true" />
            <layout type="log4net.Layout.PatternLayout,log4net">
              <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
              <param name="Header" value=" ----------------------header--------------------------" />
              <param name="Footer" value=" ----------------------footer--------------------------" />
            </layout>
          </appender>
          <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
            <layout type="log4net.Layout.PatternLayout,log4net">
              <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            </layout>
          </appender>
          <logger name="Log4NetTest.LogTest">
            <level value="ERROR" />
            <appender-ref ref="rollingFile" />
            <appender-ref ref="coloredConsoleApp" />
            <appender-ref ref="SystemEvent" />
          </logger>
        </log4net>
      </userSettings>
    </configuration>
    紅色部分是對log4net的設置,其他不用管
    (3)在要只用log4net的類namespace前面加using log4net; [assembly: log4net.Config.XmlConfigurator()]
    (4)在代碼中使用logger.info("XXXX");就可以了

    posted @ 2008-10-16 15:49 Kevin Meng 閱讀(756) | 評論 (0)編輯 收藏

    環境
    jdk1.6
    tomcat5.028

    首先下載“xalan系列jar包”,下載地址:http://www.apache.org/dyn/closer.cgi/xml/xalan-j,
    然后將tomcat中目錄下:/tomcat/common/endorsed/(xercesImpl.jar和xml-apis.jar)刪掉,然后將下載的xalan系列jar包(包括serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar、xsltc.jar)拷貝到/tomcat/common/endorsed目錄,重啟tomcat

    posted @ 2008-10-09 10:25 Kevin Meng 閱讀(1536) | 評論 (0)編輯 收藏

    例如:http://www.map512.cn/findPOI.do?key=南門
    如果不轉碼,request.getParameter("key")返回的是亂碼,在jsp中,我們一般這樣子傳參數
    String key2=URLEncoder.encode(key,"gbk");
    http://www.map512.cn/findPOI.do?key=key2

    那么在freemarker中怎么辦呢?

    <#setting url_escaping_charset='gbk'>
    <a href=http://www.map512.cn/findPOI.do?key=${key?url}>查詢</a>

    posted @ 2008-09-18 16:39 Kevin Meng 閱讀(4589) | 評論 (2)編輯 收藏

    <1>軟硬件環境
    Apache Http Server 2.2.4
    Tomcat 5.028
    jdk1.6
    請自行下載jk_module.so,但注意必須與apache http server的版本對應。

    硬件我手頭有一臺IBM服務器,有三臺刀片機可用,IP分別是
    S1:192.168.70.101
    S2:192.168.70.102
    S3:192.168.70.103
    當然這三臺機器您完全可以用三個一般的臺式機來代替.
    我們的計劃是
    用S1來做應用服務器,用S2來做負載均衡,用S3來做數據庫服務器.
    <2>在S1,S2下安裝jdk1.6
    例如我安裝在c:\jdk1.6下
    添加環境變量:
    JAVA_HOME=C:\jdk1.6
    CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
    在PATH前面加:
    PATH=%JAVA_HOME%\bin;
    <3>在S1下安裝apache,沒有什么值得注意的地方,一路按next就可以了
    我安裝在D:\Apache2.2
    <4>在S1,S2下安裝tomcat 5.028
    也是一路按next就可以了,我安裝在d:\tomcat5.0

    以上對于一個java開發人員來說應該都不是問題,接下來就是重頭戲了!
    <5>配置
    5.1 把下載的mod_jk-1.2.26-httpd-2.2.4.so拷貝到S1機器的D:\Apache2.2\modules目錄下,并改名為mod_jk.so
    5.2 打開S1機器的D:\Apache2.2\conf\http.conf文件,在一堆LoadModule的最后加上這么一行
    LoadModule jk_module modules/mod_jk.so
    5.3 在D:\Apache2.2\conf\http.conf的最后加上對jk_module的配置

    #與tomcat關聯

    <IfModule jk_module>

    JkWorkersFile conf/workers.properties 

    JkMountFile conf/uriworkermap.properties

    JkLogFile logs/mod_jk.log

    JkLogLevel warn

    </IfModule>

    <IfModule dir_module>

        DirectoryIndex index.html,index.jsp,index.htm   

    </IfModule>

    #結束與tomcat關聯

     


    #添加虛擬主機,注意S1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄,否則靜態頁面會無法訪問  

    <VirtualHost *:80>
          ServerName www.map512.cn
          DocumentRoot D:/Tomcat5.0/webapps
          ServerAdmin support.szmap@gmail.com
          JkMountFile conf/uriworkermap.properties
    </VirtualHost>
    #給虛擬主機目錄付權限
    <Directory D:/Tomcat5.0/webapps>                   
            Options Indexes FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
    </Directory>

    #默認訪問
    <IfModule dir_module>
        DirectoryIndex index.html,index.jsp  
    </IfModule>


    5.4 在D:\Apache2.2\conf\http.conf目錄下新建一個文件workers.properties,并添加以下內容

    #
    # workers.properties
    #


    # list the workers by name

    worker.list=SZMAP, status

    # localhost server 1
    # ------------------------
    worker.s1.port=8009
    worker.s1.host=192.168.70.101
    worker.s1.type=ajp13

    # localhost server 2
    # ------------------------
    worker.s2.port=8009
    worker.s2.host=192.168.70.102
    worker.s2.type=ajp13
    # worker.s2.stopped=1

    worker.SZMAP.type=lb
    worker.retries=3
    worker.SZMAP.balance_workers=s1, s2
    worker.SZMAP.sticky_session=1

    worker.status.type=status

    說明:這個文件配置了兩個worker,一個是SZMAP即我們的應用服務,這個應用服務type是lb即負載均衡,并由s1和s2兩個balanced_workers來執行,這里你可以添加無限多個服務器來實現負載(當然,前提是您有足夠的RMB),一個是status是用來查看負載均衡狀態的,我們后面將會用到.

    5.6 在D:\Apache2.2\conf\http.conf目錄下新建一個文件uriworkermap.properties,并添加以下內容

    /*=SZMAP
    /jkstatus=status    #設置除以下類型的文件外,都由tomcat提供服務(也就是說下面列出的格式都有apache提供服務)

    !/*.gif=SZMAP
    !/*.jpg=SZMAP
    !/*.png=SZMAP
    !/*.css=SZMAP
    !/*.js=SZMAP
    !/*.html=SZMAP


    說明:這個配置的意思是,所有的請求都轉到SZMAP這個worker(即上面配置的s1,s2這兩個balanced_workers下的tomcat服務)去執行,除了*.gif,*.html等靜態元素和/jkstatus,/jkstatus由status這個worker執行.

    5.7 Tomcat的配置
    打開S1機器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成

    <Engine defaultHost="localhost" name="Catalina" jvmRoute="s1">

          <Host appBase="webapps" name="localhost">

       

    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

                     managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                     expireSessionsOnShutdown="false"

                     useDirtyFlag="true">


                <Membership 

                    className="org.apache.catalina.cluster.mcast.McastService"

                    mcastAddr="228.0.0.4"

                    mcastPort="45564"

                    mcastFrequency="500"

                    mcastDropTime="3000"/>


                <Receiver 

                    className="org.apache.catalina.cluster.tcp.ReplicationListener"

                    tcpListenAddress="auto"

                    tcpListenPort="4001"

                    tcpSelectorTimeout="100"

                    tcpThreadCount="6"/>


                <Sender

                    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                    replicationMode="pooled"/>


                <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

                       filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/>

            </Cluster>

        

            <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>

          </Host>

          <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>

          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>

        </Engine>

    打開S2機器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成

    <Engine defaultHost="localhost" name="Catalina" jvmRoute="s2">

          <Host appBase="webapps" name="localhost">

        

    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

                     managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                     expireSessionsOnShutdown="false"

                     useDirtyFlag="true">


                <Membership 

                    className="org.apache.catalina.cluster.mcast.McastService"

                    mcastAddr="228.0.0.4"

                    mcastPort="45564"

                    mcastFrequency="500"

                    mcastDropTime="3000"/>


                <Receiver 

                    className="org.apache.catalina.cluster.tcp.ReplicationListener"

                    tcpListenAddress="auto"

                    tcpListenPort="4001"

                    tcpSelectorTimeout="100"

                    tcpThreadCount="6"/>


                <Sender

                    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                    replicationMode="pooled"/>


                <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

                       filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/>

            </Cluster>

        

            <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>

          </Host>

          <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>

          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>

        </Engine>


    到此,我們的配置已經完成.


    <6>查看結果
    啟動S1和S2下的tomcat服務,然后啟動S1下的apache服務.
    打開流覽器,輸入地址http://192.168.70.101/jkstatus,如果能看到以下界面,那么,恭喜您,您該感謝我了!呵呵!

    JK Status Manager for 192.168.70.101:80

    Server Version: Apache/2.2.4 (Win32) mod_jk/1.2.26
    JK Version: mod_jk/1.2.26


    (every seconds) [Change Format: XML | Property | Text]  [Read Only]   [S=Show only this worker, E=Edit worker, R=Reset worker state, T=Try worker recovery]

     


     

    Listing Load Balancing Worker (1 Worker) [Hide]


     

    [S|E|R]  Worker Status for SZMAP

    Type Sticky Sessions Force Sticky Sessions Retries LB Method Locking Recover Wait Time Max Reply Timeouts
    lb True False 2 Request Optimistic 60 0

    Good Degraded Bad/Stopped Busy Max Busy Next Maintenance
    2 0 0 0 6 32/94

    Balancer Members [Hide]

      Name Type Host Addr Act State D F M V Acc Err CE RE Wr Rd Busy Max Route RR Cd Rs
    [E|R s1 ajp13 192.168.70.101:8009 192.168.70.101:8009 ACT OK/IDLE 0 1 1 0 1821 0 0 0 1.3M 2.0M 0 5 s1     0/0
    [E|R s2 ajp13 192.168.70.102:8009 192.168.70.102:8009 ACT OK/IDLE 0 1 1 0 1821 0 0 0 1.3M 2.0M 0 4 s2     0/0

    Edit one attribute for all members: [Activation |LB Factor |Route |Redirect Route |Cluster Domain |Distance ]



    參考:
    proxy方式:http://blog.chinaunix.net/u/22176/showart_1002535.html
    liunx下的配置:http://seven.blog.51cto.com/120537/57930

    posted @ 2008-09-10 10:25 Kevin Meng 閱讀(557) | 評論 (0)編輯 收藏

    所有的頁面用UTF-8編碼,然后
    在struts.xml中加
    <constant name="struts.locale" value="zh_CN"></constant>
     <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    即可。

    posted @ 2008-08-22 18:50 Kevin Meng 閱讀(245) | 評論 (0)編輯 收藏

    (1)在eclipse中配置好struts2

    (2)把struts2-spring-plugin-2.0.11.2.jar包復制到WEB-INF\lib目錄
    (3)在web.xml中配置spring
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    記住,如果您之前用過spring,請把spring配置去掉。
     <servlet>
      <servlet-name>context</servlet-name>
      <servlet-class>
       org.springframework.web.context.ContextLoaderServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
    (4)修改applicationContext.xml
    <beans default-autowire="byName" xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    (5)在struts.xml加入
    <constant name="struts.objectFactory" value="spring" />
    (6)在spring的配置文件applicationContext.xml中定義action
    <bean id="SearchBusLineAction"
      class="com.bus.struts2.action.SearchBusLineAction" abstract="false"
      lazy-init="default" autowire="default" dependency-check="default">
      <property name="busService">
       <ref bean="BusServiceImpl" />
      </property>
     </bean> 
    (7)在struts.xml中定義action
    <!-- 注意這里class="SearchBusLineAction"而不是com.bus.struts2.action.SearchBusLineAction是因為這個已經在spring的applicationContext.xml中定義 -->
      <action name="searchBusLine" class="SearchBusLineAction">
       <result name="success" type="freemarker">/index.jsp</result>
      </action>

    posted @ 2008-08-22 17:41 Kevin Meng 閱讀(2421) | 評論 (0)編輯 收藏

    選Project->Clean...重新編譯一下項目就可以了。

    posted @ 2008-08-08 16:07 Kevin Meng 閱讀(233) | 評論 (0)編輯 收藏

    freemarker腳本將你的頁面搞得一團槽吧.

    修改一下dreamweaver的配置,將freemarker 腳本顯示成和js一樣的圖標效果吧

    以dreamweaver8為例

    打開

    Dreamweaver 8\Configuration\ThirdPartyTags\Tags.xml

    加入

    < !-- FreeMarker Tag By hety-->
    <directive_spec tag_name="ftl_b1" start_string="[#" end_string="]" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
    <directive_spec tag_name="ftl_e1" start_string="[/#" end_string="]" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
    <directive_spec tag_name="ftl_i" start_string="[@" end_string="/]" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
    <directive_spec tag_name="ftl_b2" start_string="<#" end_string=">" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
    <directive_spec tag_name="ftl_e2" start_string="</#" end_string=">" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
    <directive_spec tag_name="ftl_v" start_string="${" end_string="}" detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>

    重啟下dreamweaver就搞定

    dreamweaver其它版本的腳本配置也差不多



    還可參考:http://weishuwei.javaeye.com/blog/85041

    posted @ 2008-08-08 14:06 Kevin Meng 閱讀(314) | 評論 (0)編輯 收藏

    http://blog.csdn.net/maxgong2005/archive/2006/05/12/725977.aspx

    posted @ 2008-07-07 10:43 Kevin Meng 閱讀(164) | 評論 (0)編輯 收藏

    (1)配置tomcat支持SSL,請參考我的文章:http://m.tkk7.com/menglikun/archive/2008/07/02/212065.html
    (2)把證書導到jre,運行cmd
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版權所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\Administrator>d:

    D:\>cd d:\tomcat5.0

    D:\Tomcat5.0>keytool -export -file myserver.cert -alias cas -keystore server.key
    store
    輸入keystore密碼:
    保存在文件中的認證 <myserver.cert>

    D:\Tomcat5.0>

    執行到這里,您應該可以在d:\tomcat5.0目錄中找到一個文件myserver.cert
    接著,我們要把這個證書文件導到客戶端的JVM中,因為現在我們的客戶端和服務器端都是同一臺機器,所以直接進入cmd,執行以下命令就可以了
    D:\Tomcat5.0>keytool -import -keystore c:/jdk1.6/jre/lib/security/cacerts -file
    myserver.cert -alias cas
    輸入keystore密碼:                                                                //注意,這里是默認密碼changeit
    所有者:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
    簽發人:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
    序列號:486ae46a
    有效期: Wed Jul 02 10:14:02 CST 2008 至Tue Sep 30 10:14:02 CST 2008
    證書指紋:
             MD5:AC:A9:C2:47:36:DF:D0:C1:76:F3:6D:14:70:73:90:5C
             SHA1:3C:2E:45:92:29:98:ED:7E:93:34:BB:11:2D:EE:ED:E3:E4:4D:E3:85
             簽名算法名稱:SHA1withRSA
             版本: 3
    信任這個認證? [否]:  y
    認證已添加至keystore中

    (3)配置CAS服務器
    我用戶的是3.2.1版本,直接把cas-server-webapp-3.2.1.war復制到tomcat的webapp目錄,改名為userservice-cas就可以了
    (4)配置客戶端,我用的是cas-client-java-2.1.0,把casclient.jar復制到客戶端的lib目錄,然后打開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/userservice-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/userservice-cas/serviceValidate
       </param-value>
      </init-param>
      <init-param>
       <param-name>
        edu.yale.its.tp.cas.client.filter.serverName
       </param-name>
       <param-value>
        localhost:4000
       </param-value>
      </init-param>
     </filter>

     <filter-mapping>
      <filter-name>CAS Filter</filter-name>
      <url-pattern>/jsp/user/*</url-pattern>
     </filter-mapping>

    其他:
    (1)成功登錄后,出現錯誤 Unable to validate ProxyTicketValidator 是什么原因。
    這是因為數字證書的簽名不一致造成的,例如生成證書的時候用localhost,但是訪問的時候卻用機器名。統一一下就可以了

    posted @ 2008-07-02 11:19 Kevin Meng 閱讀(312) | 評論 (0)編輯 收藏

    由于最近需要CAS,所以研究了一下tomcat SSL的配置,現記錄下來。
    環境:
    window xp
    tomcat 5.028
    jdk 1.6
    (1)進入cmd
    我的tomcat安裝在d:\tomcat5.0,所以進入該目錄

    Microsoft Windows XP [版本 5.1.2600]
    (C) 版權所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\Administrator>d:

    D:\>cd d:\tomcat5.0

    D:\Tomcat5.0>keytool -genkey -alias cas -keyalg RSA -keystore server.keystore            //別名是cas,您可以自己修改
    輸入keystore密碼:                                                //我輸入了密碼menglikun,您可以自己改,但要記住,后面要用到
    再次輸入新密碼:
    您的名字與姓氏是什么?
      [Unknown]:  localhost      //如果是開發環境,建議用localhost或機器名,如果是發布環境,請用域名,不要用IP

    您的組織單位名稱是什么?
      [Unknown]:  szghj
    您的組織名稱是什么?
      [Unknown]:  szghj
    您所在的城市或區域名稱是什么?
      [Unknown]:  suzhou
    您所在的州或省份名稱是什么?
      [Unknown]:  jiangsu
    該單位的兩字母國家代碼是什么
      [Unknown]:  cn
    CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn 正確嗎?
      [否]:  y

    輸入<cas>的主密碼
            (如果和 keystore 密碼相同,按回車):                                    //輸入密碼menglikun
    再次輸入新密碼:

    D:\Tomcat5.0>
    執行到這一步,如果不出意外的話,在d:\tomcat5.0目錄下就會有一個server.ksystore文件
    (2)打開d:\tomcat5.0\conf\server.xml,添加一個新的connector,修改后的server.xml如下:
    <?xml version='1.0' encoding='utf-8'?>
    <Server>
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
      <GlobalNamingResources>
        <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
        <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
        <ResourceParams name="UserDatabase">
          <parameter>
            <name>factory</name>
            <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          </parameter>
          <parameter>
            <name>pathname</name>
            <value>conf/tomcat-users.xml</value>
          </parameter>
        </ResourceParams>
      </GlobalNamingResources>
      <Service name="Catalina">
        <Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="4000" redirectPort="8443" useBodyEncodingForURI="true" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
        </Connector>
        <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
        </Connector>
       <Connector port="8443"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" debug="0" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" keystorePass="menglikun" keystoreFile="server.keystore" />
        <Engine defaultHost="localhost" name="Catalina">
          <Host appBase="webapps" name="localhost">
            <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
          </Host>
          <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
        </Engine>
      </Service>
    </Server>
    (3)重新啟動tomcat,在瀏覽器中輸入https://localhost:8443,如果出現安全提示,說明SSL配置成功

    posted @ 2008-07-02 10:48 Kevin Meng 閱讀(194) | 評論 (0)編輯 收藏

    (1)開通泛域名支持,即house.map512.cn,plan.map512.cn,map512.cn都指向同一IP,如218.4.157.245
    (2)修改tomcat目錄下的conf/server.xml,在engine里面添加

    <Host name="localhost" debug="0" appBase="E:\\Tomcat5.0\\webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
           <Logger className="org.apache.catalina.logger.FileLogger"
                     directory="logs"  prefix="localhost_log." suffix=".txt"
                timestamp="true"/>
            <Context path="" docBase="E:\\Tomcat5.0\\webapps\\szmap"  reloadable="true" caseSensitive="false" debug="0"></Context>
     </Host>

     <Host name="house.map512.cn" debug="0" appBase="E:\\Tomcat5.0\\suzhou"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
           <Alias>house.map512.cn</Alias>
           <Context path="" docBase="E:\\Tomcat5.0\\suzhou\\szhouse"  reloadable="true" caseSensitive="false" debug="0"></Context>
     </Host>

     <Host name="plan.map512.cn" debug="0" appBase="E:\\Tomcat5.0\\suzhou"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
           <Alias>plan.map512.cn</Alias>
           <Context path="" docBase="E:\\Tomcat5.0\\suzhou\\szghgs"  reloadable="true" caseSensitive="false" debug="0"></Context>
     </Host>

    posted @ 2008-07-01 16:14 Kevin Meng 閱讀(901) | 評論 (0)編輯 收藏

    網上有很多介紹,但是都太麻煩,特別是當你的表中有lob字段的時候,其實很簡單,用以下SQL就可以了。
    create table tab2 tablespace space2 as (select t.* from tab1 t);
    tab1為原來的表,tab2為臨時表 space2為目的表空間。
    執行完后,把tab1刪除,然后把tab2改名為tab1就可以了。注意該方法不能復制索引,所以必須重建索引!

    posted @ 2008-06-18 16:02 Kevin Meng 閱讀(488) | 評論 (0)編輯 收藏

    1、盡量不要使用 like '%..%'

    2、對于 like '..%..' (不以 % 開頭),Oracle可以應用 colunm上的index

    3、對于 like '%...' 的 (不以 % 結尾),可以利用 reverse + function index 的形式,變化成 like '..%' 代碼

     

    建測試表和Index。

    注意:重點在于帶reverse的function index。同時,一定要使用CBO才行......

     

    SQL> select reverse('123') from dual;

    REVERSE('123')

    --------------------------------

    321

    1 row selected.

     

    SQL> create table test_like as select object_id,object_name from dba_objects;

    Table created.

     

    SQL> create index test_like__name on test_like(object_name);

    Index created.

     

    SQL> create index test_like__name_reverse on test_like(reverse(object_name));

    Index created.

     

    SQL> analyze table test_like compute statistics for table for all indexes;

    Table analyzed.

     

    SQL> set autot trace

     

    --常量開頭的like , 會利用index ,沒問題......

    SQL> select * from test_like where object_name like AS%';

    Execution Plan

    ----------------------------------------------------------

    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)

    1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST_LIKE' (Cost=2 Card=655Bytes=15720)

    2 1 INDEX (RANGE SCAN) OF 'TEST_LIKE__NAME' (NON-UNIQUE) (Cost=2 Card=118)

     

    -- 開頭和結尾都是%,對不起,很難優化

     

    SQL> select * from test_like where object_name like '%%';

     

    Execution Plan

    ----------------------------------------------------------

    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)

    1 0 TABLE ACCESS (FULL) OF 'TEST_LIKE' (Cost=6 Card=655 ytes=15720)

     

    -- 以常量結束,直接寫的時候是不能應用index的

    SQL> select * from test_like where object_name like '%S';

    Execution Plan

    ----------------------------------------------------------

    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)

    1 0 TABLE ACCESS (FULL) OF 'TEST_LIKE' (Cost=6 Card=655 Bytes=15720)

     

    --'以常量結束的,加個reverse 函數,又可以用上index了'

    SQL> select * from test_like where reverse(object_name)like reverse('%AS');

    Execution Plan

    ----------------------------------------------------------

    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)

    1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST_LIKE' (Cost=2 Card=655 Bytes=15720)

    2 1 INDEX (RANGE SCAN) OF 'TEST_LIKE__NAME_REVERSE' (NON-UNIQUE) (Cost=2 Card=118)

    posted @ 2008-06-16 09:18 Kevin Meng 閱讀(394) | 評論 (0)編輯 收藏

    來源:http://forum.ubuntu.org.cn/viewtopic.php?t=120157&highlight=
    今天開機的時候,ubuntu系統提示說
    Busybox v1.1.3 (debian1:1.1.3-5 ubuntu12)built-in shell (ash)
    enter 'help'for a list of built-in commands
    (initranfs)
    在網上找了很多資料終于找到了解決方法:
    先說說我的情況,我的是雙系統,WindowsXP+Ubuntu,所以我進去windowsxp系統

    把boot里面的initrd.img-2.6.24-12-generic.bak重命名替換initrd.img-2.6.24-12-generic

    我的問題就是這樣解決的。
    重啟電腦,一切正常!!
    希望對大家有幫助!

    posted @ 2008-05-26 09:52 Kevin Meng 閱讀(1167) | 評論 (3)編輯 收藏

    我的開發環境:Oracle 9i,Window Server 2003
    (1)正確安裝Oracle 9i企業版,Oracle9i企業版在安裝的時候就已經默認提供了全文索引支持。如果你的Oracle還沒有安裝,請先安裝一下,至于怎樣安裝,這里不做討論,請Google一下。
    (2)Oracle9i默認情況下會把ctxsys用戶鎖定,請以DBA身份登陸Oracle,把用戶ctxsys解鎖,并修改其密碼為ctxsys,以便于我們后面登陸Text Manager
    (3)進入Oracle的text manager,點程序->Oracle-OracleHome92->Enterprise Manager Console。選獨立啟動,然后選工具欄最下面的應用程序->text Manager,這時會要求您輸入用戶名和密碼,用戶名ctxsys,密碼ctxsys
    (4)選擇首選項——〉語言指定器——〉CTXSYS,選一個點類似創建,輸入指示器的名字如chinese_lexer,選擇lexer下的chinese_vgrnm_lexer 。
    (5)建立索引,在索引上點右鍵,然后選創建CONTEXT索引,這里要注意方案要選擇您自己的表空間,如我有個表SZPOI在表空間SUZHOU中,現在我要對該表的UNITNAME字段建立全文索引,那么方案選suzhou,表選szpoi,字段選unitname,首選項中選擇chinese_lexer 。

      這樣全文檢索就建好了,并用chinese_vgram_lexer作為分析器。

    (6)如何查詢數據。索引建立以后,我們就可以對該表進行全文索引查詢了,查詢語句如下:
    SELECT score(1),t.unitname,t.objectid,t.eminx,t.eminy,t.mpfullname,t.dianhua FROM szpoi t WHERE contains (unitname, '規劃局,吳中分局', 1) > 0 order by score(1) desc

    這個語句的意思是在表szpoi中查詢unitname包含“規劃局”和“吳中分局”兩個關鍵字的記錄,并按匹配度從高到低排序。
    大功告成了嗎?沒有!
    接著我們還要建立兩個job來維護和優化索引。
    維護:
    begin
      sys.dbms_job.submit(job => :job,
                          what => 'ctx_ddl.sync_index(''SZPOI_UNITNAME_INDEX'');',
                          next_date => to_date('23-05-2008 13:54:57', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'SYSDATE + (1/24/4)');
      commit;
    end;
    優化:
    begin
      sys.dbms_job.submit(job => :job,
                          what => 'ctx_ddl.optimize_index(''SZPOI_UNITNAME_INDEX'',''FULL'');',
                          next_date => to_date('23-05-2008 14:03:02', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'SYSDATE + 1');
      commit;
    end;

    posted @ 2008-05-23 13:47 Kevin Meng 閱讀(662) | 評論 (0)編輯 收藏

    一、下載三個軟件:Apache 2,Subversion和TortoiseSVN
    二、安裝apache,最好用80端口
    三、安裝Subversion
    四、安裝TortoiseSVN
    五、進入D:\Subversion,新建一個目錄projects
    六、在projects目錄中點鼠標右鍵,選擇TortoiseSVN->create reposities here...新建一個倉庫
    七、打開apache的httpd.conf文件,找到
    #LoadModule dav_module modules/mod_dav.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    把前面的#去掉,并添加
    LoadModule dav_svn_module D:/Subversion/bin/mod_dav_svn.so
    LoadModule authz_svn_module D:/Subversion/bin/mod_authz_svn.so
    八、在httpd.conf后面添加

    <Location /svn>
    #
    # SVN
    #
    DAV svn
    SVNParentPath "D:/Subversion"

    </Location>
    保存,然后重啟apache,打開ie,輸入http://localhost/svn/projects/看看能不能打開,如果能打開,恭喜您,您離成功已經不遠了!
    九、設置權限
    點開始->運行,打開控制臺
    進入D:\Apache\Apache2\bin,運行
    htpasswd -c D:\Subversion\passwd   menglikun
    新建一個密碼文件,并添加用戶menglikun,如果要添加更多用戶,運行
    htpasswd -m D:\Subversion\passwd   test 
    添加test用戶
    十、修改apache的httpd.conf文件

    <Location /svn>
    #
    # SVN
    #
    DAV svn
    SVNParentPath "D:/Subversion"

    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile D:/Subversion/passwd
    Require valid-user
    </Location>
    保存,重啟apache,再次進入http://localhost/svn/projects,這次就要求輸入密碼了!
    OK,大功告成!
    更多設置,請找google,如如何設置目錄的訪問權限(只讀,可寫等等)。



     

    posted @ 2008-04-11 11:15 Kevin Meng 閱讀(223) | 評論 (0)編輯 收藏

    新建一個CSS標簽,標簽名選擇TABLE,確定后在彈出的CSS樣式編輯器里,選"分類"中的"方框"選項,將里面的寬,高,填充,邊界的值全部設為0;再將"定位"中"類型"下面的寬,高的值也都設為0,點保存,然后再把表格的樣式設置為table就可以了,即class="TABLE".

    posted @ 2008-03-03 17:20 Kevin Meng 閱讀(1533) | 評論 (0)編輯 收藏

    firefox上網慢是由于解析域名需要太長時間造成的,解決辦法如下(有時間再翻譯成中文):

    Local DNS Cache for Faster Browsing on Ubuntu System

    by @ 8:57 am. Filed under Other Linux

     

    A DNS server resolves domain names into IP addresses. So when you request “yahoo.com” for example, the DNS server finds out the address for the domain, and sends your request the right way.

     

    You can run a DNS cache on your computer. This will speed up the process of looking up domain names when browsing. The difference is about 30-60 ms. Multiply that difference by the number of websites you visit a day for an approximate estimate of the speed improvement.

    The following instructions are for someone with a broadband internet connection, where the computer gets it’s local IP address using DHCP from the router in your home or office.

    Install dnsmasq in Ubuntu

    Dnsmasq is a lightweight, easy to configure, DNS forwarder and DHCP server. It is designed to provide DNS and optionally, DHCP, to a small network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.

    First you need to make sure that Universe repository is enabled in your sources.list file

    Install dnsmasq Using the following command

    sudo apt-get install dnsmasq

    uncomment the following line (remove “#” in the beginning) in the file /etc/dnsmasq.conf

    listen-address=127.0.0.1

    Now edit

    /etc/dhcp3/dhclient.conf

    and make sure the section below exactly like this, especially the line that says “prepend domain-name-servers 127.0.0.1;”

    #supersede domain-name “fugue.com home.vix.com”;
    prepend domain-name-servers 127.0.0.1;
    request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, host-name,
    netbios-name-servers, netbios-scope;

    In the normal case, when you get a new dhcp lease, the dhcp3 client (tool) on your computer gets a new lease, and updates the

    /etc/resolv.conf

    file on your computer with the right values for the DNS servers to use (usually some machine in the network of your hosting provider). Adding the “prepend” option as we did above ensures that “127.0.0.1″ will appear on the top of the list of DNS servers. That magic number refers to your own computer. So in the future, whenever your computer needs to resolve a domain name, it will forward that request to dnsmasq (which is running at 127.0.0.1 - your computer). If the details for the domain name are already in you cache, well and good, dnsmasq will serve it up and make the process real fast. If it is not in the cache, then dnsmasq will look at the /etc/resolv.conf file and use the nameservers listed below the “127.0.0.1″. I hope that explains things.

    Now open the file

    /etc/resolv.conf

    in your text editor. It probably looks like:

    search yourisp.com
    nameserver 217.54.170.023
    nameserver 217.54.170.024
    nameserver 217.54.170.026

    The 127.0.0.1 is missing right now since you haven’t renewed your lease after you edited the /etc/dhcp3/dhclient.conf file. So, let us add that in manually this one time. After you do, your /etc/resolv.conf file will look like the following:

    search yourisp.com
    nameserver 127.0.0.1
    nameserver 217.54.170.023
    nameserver 217.54.170.024
    nameserver 217.54.170.026

    Now you need to restart the dnsmasq using the following command

    sudo /etc/init.d/dnsmasq restart.

    Now you are running a local DNS cache.

    Testing Your Local DNS Cache

    If you want to measure your speed improvement, type the command

    dig yahoo.com

    You will see something like “;; Query time: 38 msec” there.

    Now type the command again, and you should see something like:”;; Query time: 2 msec”

    posted @ 2008-01-22 12:47 Kevin Meng 閱讀(1882) | 評論 (0)編輯 收藏

    apache 2.2.3
    tomcat 5.028
    下載 mod_jk.so(http://m.tkk7.com/Files/menglikun/mod_jk2.rar )放到D:\Apache2.2\modules
    修改D:\Apache2.2\conf\httpd.conf在后面加以下代碼
    # Using mod_jk2.dll to redirect dynamic calls to Tomcat
    LoadModule jk_module modules\mod_jk2.so
    JkWorkersFile "conf\workers.properties"
    JkLogFile "logs\mod_jk2.log"
    JkLogLevel debug
    JkMount /*.jsp worker1
    JkMount /szmap3/* worker1
    在D:\Apache2.2\conf\httpd.conf中新建workers.properties加入代碼
    workers.tomcat_home=d:\Tomcat5.0 #讓mod_jk模塊知道Tomcat
    workers.java_home=C:\jdk1.5 #讓mod_jk模塊知道j2sdk
    ps=\ #指定文件路徑分割符
    worker.list=worker1
    worker.worker1.port=8009 #工作端口,若沒占用則不用修改
    worker.worker1.host=localhost #Tomcat服務器的地址
    worker.worker1.type=ajp13 #類型
    worker.worker1.lbfactor=1 #負載平衡因數
    為避免出現亂碼,必須修改tomcat安裝目錄下的conf/server.xml,修改以下配置
    <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" URIEncoding="GBK">
        </Connector>
    重新啟動apache就可以了

    posted @ 2007-12-25 15:20 Kevin Meng 閱讀(231) | 評論 (0)編輯 收藏

    這是因為form里面有個按鈕名字叫submit,改成別的別的名稱如submit2就可以了。  

    posted @ 2007-11-23 09:08 Kevin Meng 閱讀(707) | 評論 (0)編輯 收藏

        用encodeURIComponent就可以了。如以下代碼:
        var name =  document.getElementById("textName").value;
        if (name=="樓盤名稱")
            name = "";
        var url="house/searchHouse.php?district="+encodeURIComponent(district);
       

    posted @ 2007-09-26 15:09 Kevin Meng 閱讀(564) | 評論 (0)編輯 收藏

    一、軟件準備
    (1)apache_2.2.3-win32-x86-no_ssl.msi 到官方網站下載
    (2)php-5.2.4-win32-installer.msi 到官方網站下載
    二、安裝apache_2.2.3我們安裝在D:\apache2.2目錄下,如果您的機器上已經安裝有oracle,因為oracle的apache占用了80端口,安裝完后打開D:\Apache2.2\conf\httpd.conf文件,把Listen 80改成別的端口號,如4001
    三、安裝php5.2.4,安裝時要求選擇apache安裝目錄,選擇D:\Apache2.2就可以了。
    四、測試PHP是否已經安裝成功,進入D:\Apache2.2\htdocs新建一個文本文件,輸入
    <?php
    phpinfo();
    ?>
    另存為phpinfo.php
    啟動apahche服務,然后打開瀏覽器,輸入http://localhost:4001/phpinfo.php,如果出現php信息頁面,說明php安裝成功。

    posted @ 2007-09-26 11:15 Kevin Meng 閱讀(336) | 評論 (0)編輯 收藏

    declare
    cursor t1 is select * from szmenpaipro;
    begin
    for rec in t1 loop
    update wgspoi t set t.detail=rec.jieshao where t.objectid=rec.objid;
    end loop;
    end;

    posted @ 2007-08-02 16:48 Kevin Meng 閱讀(1343) | 評論 (1)編輯 收藏

    出現這個錯誤是因為oracle序列R3產生的值在表gdb_objectclasses中已經有記錄造成的。解決辦法是進入plus/sql或用PL/SQL Developer鏈接oracle.
    (1)執行SQL
    SELECT MAX(id) FROM gdb_objectclasses
    找出id的最大值。例如執行結果是
    MAX(ID)
    ---------------
    55
    (2)執行SQL
    SELECT registration_id FROM table_registry WHERE table_name = 'GDB_OBJECTCLASSES'
    找到表'GDB_OBJECTCLASSES'注冊ID號
    如執行結果是
    --------------
    3
    (3)執行SQL
    SELECT last_number FROM user_sequences WHERE sequence_name = 'R3'
    找出序列R3的下一個值,如果第二步中的執行結果是4則這里是R4。例如執行結果是:
    LAST_NUMBER
    ---------------
    50
    (4)從上面的查詢結果中可以看出,序列R3的下一個值是50,而表gdb_objectclasses中小于55的值都已經被占用了。所以就會出現異常Unique contraint (SDE.GDB_OC_PKC) violated。解決辦法是不斷增加序列R3的值,使其大于55,執行下面的SQL語句6次就可以了。
    SELECT R3.NEXTVAL from dual
    (5)在SDE中,選中sde連接后點鼠標右鍵,選擇refresh。然后就可以再導數據了。注意這一步一定要進行,這也是我一直認為sde很爛的地方。

    posted @ 2007-04-11 09:52 Kevin Meng 閱讀(7880) | 評論 (0)編輯 收藏

    例如有這樣一個表,其中ID號為AAAK2aAAMAAAOX+AAX的記錄是重復的,如何只取其中一條記錄呢?
     

    ID1

    XINGMING

    XINGBIE

    CENGYONGMING

    MINZU

    PAICHUSUOBIANHAO

    JUWEIHUIBIANHAO

    AAAK2aAAMAAAOefAAx

    陳長芬

    2

     

    01

    32059856

    3205985607

    AAAK2aAAMAAAOfgAAn

    陳尺平

    1

     

    01

    32059856

    3205985615

    AAAK2aAAMAAAOX+AAX

    陳春付

    1

     

    01

    32059856

    3205985602

    AAAK2aAAMAAAOX+AAX

    陳春付

    1

     

    01

    32059856

    3205985602

    AAAK2aAAMAAAOX+AAX

    陳春付

    1

     

    01

    32059856

    3205985602

    通過這個SQL就可以了。
    create table szzzrktemp as (select * from zzrktemp t1
    where rowid in (select max(rowid) from zzrktemp t2
     where t1.id1=t2.id1))

    posted @ 2007-04-09 13:13 Kevin Meng 閱讀(233) | 評論 (0)編輯 收藏

    oracle打了9.2.0.4的補丁之后,必須把版本也改變過來。
    運行cmd
    sqlplus /nolog

    SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 4月 5 09:35:41 2007

    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

    SQL> conn sys/system@ora as sysdba
    已連接。
    SQL> shutdow immediate
    數據庫已經關閉。
    已經卸載數據庫。
    ORACLE 例程已經關閉。
    SQL> startup migrate
    ORACLE 例程已經啟動。
    Total System Global Area 1687760036 bytes
    Fixed Size                   457892 bytes
    Variable Size             486539264 bytes
    Database Buffers         1199570944 bytes
    Redo Buffers                1191936 bytes
    數據庫裝載完畢。
    數據庫已經打開。
    SQL> spool d:\catpatch.log
    SQL> @d:\oracle\ora92\rdbms\admin\catpatch.sql
    SQL> spool off
    注:在catpatch中會調用catexp來修改exp
    至此成功修改exp
    使用exp導出成功DD
     

    posted @ 2007-04-05 09:42 Kevin Meng 閱讀(677) | 評論 (1)編輯 收藏

    當一個access表中有“備注”類型的字段時,通過access的“導出”命令導到oracle時,將出現錯誤而無法導入。解決辦法是通過PL/SQL Developer來導。

    posted @ 2007-04-02 23:08 Kevin Meng 閱讀(542) | 評論 (0)編輯 收藏

    當我們用下面的通用代碼插入一個點到空間表中時,會報SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST錯誤,錯誤信息如下:
    ArcSDE Error Number        : -38
     Error Description          : SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST.
    com.esri.sde.sdk.client.SeException:
     at com.esri.sde.sdk.client.j.a(Unknown Source)
     at com.esri.sde.sdk.client.j.a (Unknown Source)
     at com.esri.sde.sdk.client.SeInsert.intoTable(Unknown Source)
     at com.suzhou.service.sde.SDEOperation.addPointObject(SDEOperation.java:59)
     at com.suzhou.struts.action.AdminCheckNewObjAction.execute (AdminCheckNewObjAction.java:143)
     at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java :419)
     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
     at org.apache.struts.action.ActionServlet.doGet ( ActionServlet.java:414)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
     at com.suzhou.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java :24)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
     at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:214)
     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
     at org.apache.catalina.core.StandardContextValve.invokeInternal (StandardContextValve.java:198)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
     at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
     at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
     at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
     at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
     at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:799)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
     at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
     at java.lang.Thread.run(Thread.java:619)
    插入點的java代碼如下:

    String server = "menglikunm";

     int instance = 5151;

     String database = "ora";

     String user = "suzhou";

     String password = "suzhou";

     public Long addPointObject(long x, long y, String tabname) throws Exception {
      SeLayer insertLayer = null;
      SeConnection conn = null;
      Long intsertRowID = null;
      try {
       conn = new SeConnection(server, instance, database, user, password);
       Vector layerList = conn.getLayers();
       for (int index = 0; index < layerList.size(); index++) {
        SeLayer layer = (SeLayer) layerList.elementAt(index);
        System.out.println(layer.getName());
        if ( layer.getName().equalsIgnoreCase(tabname)) {
         insertLayer = layer;
         break;
        }
       }
      } catch (SeException e) {
       // e.printStackTrace();
       throw e;
      }
      // 開始插入數據
      if (insertLayer == null) {
       throw new Exception("找不到空間表:" + tabname);
      }
      try {
       conn.startTransaction();
       String[] cols = new String[1];
       //cols[0] = insertLayer.getSpatialColumn();
       cols[0]="SHAPE";
       System.out.println(cols[0]);
       SeInsert insert = new SeInsert(conn);
       System.out.println(insertLayer.getName());
       insert.intoTable(insertLayer.getName(), cols);//運行到這里時出現錯誤!
       insert.setWriteMode(true);
       SeCoordinateReference coordref = (SeCoordinateReference) insertLayer
         .getCoordRef();
       SeShape shape = new SeShape(coordref);

       int numPts = 1;
       SDEPoint[] ptArray = new SDEPoint[numPts];
       ptArray[0] = new SDEPoint(x, y);
       shape.generatePoint(numPts, ptArray);
       SeRow row = insert.getRowToSet();
       row.setShape(0, shape);
       insert.execute();
       intsertRowID = new Long(insert.lastInsertedRowId().longValue());
       insert.close();
       conn.commitTransaction();
       conn.close();
      } catch (Exception ex) {
       ex.printStackTrace ();
       try {
        conn.rollbackTransaction();
        conn.close();
       } catch (Exception ex2) {
       }
       throw ex;
      }
      return intsertRowID;
     }

    之所以出現這個錯誤,是因為當插入一個點到空間表中時,arcsde自動生成一個OBJECTID值,但如果你的空間表導到SDE的時候表中已經有了OBJECTID字段,SDE自動生成的是OBJECTID_1字段作為每條記錄的ID字段,如果你把OBJECTID_1字段人為的刪除,那么這時候arcSDE就找不到該字段了,就會報出SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST.的錯誤,解決辦法是重新導一下該空間表,且導入的時候不能有命名為OBJECTID的字段。

    很多時候,這些問題都要你自己來發現和解決,不能太相信ESRI的技術支持,他們大部分時候都不能給你什么幫助:)

    posted @ 2007-04-02 23:05 Kevin Meng 閱讀(1858) | 評論 (1)編輯 收藏

    例如有的時候你需要你的筆記本去作演示,web應用安裝在你的筆記本上,但沒有網線,無法連網。這時候如果啟動tomcat,將無法鏈接數據庫,那怎么辦呢。點網絡連接,選擇屬性,然后把所有驅動都安裝一遍,再重新啟動tomcat服務就可以了。

    posted @ 2007-03-29 17:11 Kevin Meng 閱讀(491) | 評論 (0)編輯 收藏

    下面是矩形選擇的源代碼。多邊形選擇多加點就可以了。
    public?class?RectSelectAction?extends?Action?{

    ????
    //?---------------------------------------------------------?Instance
    ????
    //?Variables

    ????
    //?---------------------------------------------------------?Methods

    ????
    /**
    ?????*?Method?execute
    ?????*?
    ?????*?
    @param?mapping
    ?????*?
    @param?form
    ?????*?
    @param?request
    ?????*?
    @param?response
    ?????*?
    @return?ActionForward
    ?????
    */

    ????
    public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,
    ????????????HttpServletRequest?request,?HttpServletResponse?response)?
    {
    ????????DynaActionForm?rectSelectForm?
    =?(DynaActionForm)?form;
    ????????String?startx?
    =?rectSelectForm.getString("startx");
    ????????String?starty?
    =?rectSelectForm.getString("starty");
    ????????String?endx?
    =?rectSelectForm.getString("endx");
    ????????String?endy?
    =?rectSelectForm.getString("endy");
    ????????Map?map?
    =?(Map)?request.getSession().getAttribute("THEMAP");
    ????????Polygon?polygon?
    =?this.creatPolygon(map,?startx,?starty,?endx,?endy);
    ????????
    if?(polygon?==?null)?{
    ????????????ActionMessages?msgs?
    =?new?ActionMessages();
    ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
    new?ActionMessage(
    ????????????????????
    "com.suzhou.message.createPolygonFail"));
    ????????????
    this.saveMessages(request,?msgs);
    ????????????
    return?mapping.findForward("resultPage");
    ????????}

    ????????FeatureLayer?menpaiLayer?
    =?null;
    ????????
    for?(int?i?=?0;?i?<?map.getLayers().getCount();?i++)?{
    ????????????
    if?(map.getLayers().item(i).getName().equals("地物點"))?{
    ????????????????menpaiLayer?
    =?(FeatureLayer)?map.getLayers().item(i);
    ????????????????System.out.println(menpaiLayer.getName());
    ????????????????System.out.println(menpaiLayer.getID());
    ????????????}

    ????????}

    ????????
    if?(menpaiLayer?==?null)?{
    ????????????ActionMessages?msgs?
    =?new?ActionMessages();
    ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
    new?ActionMessage(
    ????????????????????
    "com.suzhou.message.layerNotExsist",?"地物點"));
    ????????????
    this.saveMessages(request,?msgs);
    ????????????
    return?mapping.findForward("resultPage");
    ????????}

    ????????map.getLayers().setGeometry(
    true);//?設置返回空間信息
    ????????menpaiLayer.getRecordset().clearRecordset();
    ????????menpaiLayer.getRecordset().clearEnvelope();
    ????????menpaiLayer.getRecordset().clearGeometry();
    ????????map.getLayers().setOrder(
    false);
    ????????menpaiLayer.setFilterObject(
    null);
    ????????Filter?filter2?
    =?new?Filter();
    //????????filter2.addSubField("BLOCKNAME");
    //????????filter2.addSubField("MPNUM");
    //????????filter2.addSubField("MPABNAME");
    //????????filter2.addSubField("MPSUBNUM");
    ????????
    //filter2.setWhereExpression("");
    ????????filter2.setGlobalEnvelope(true);
    ????????filter2.setSpatialShape(polygon);
    ????????filter2.setRelation(Filter.AREA_INTERSECTION);
    ????????menpaiLayer.setFilterObject(filter2);
    ????????map.refresh();
    ????????menpaiLayer.setFilterObject(
    null);
    ????????
    if?(menpaiLayer.getRecordset()?==?null
    ????????????????
    ||?menpaiLayer.getRecordset().getCount()?<?1)?{
    ????????????ActionMessages?msgs?
    =?new?ActionMessages();
    ????????????msgs.add(ActionMessages.GLOBAL_MESSAGE,?
    new?ActionMessage(
    ????????????????????
    "com.suzhou.message.objectNotFound"));
    ????????????
    this.saveMessages(request,?msgs);
    ????????????
    return?mapping.findForward("resultPage");
    ????????}
    else{
    ????????????request.setAttribute(
    "result",menpaiLayer.getRecordset());
    ????????????
    return?mapping.findForward("resultPage");
    ????????}

    ????}


    ????
    /**
    ?????*?建立矩形
    ?????*?
    ?????*?
    @param?map
    ?????*?
    @param?startx:起點屏幕X坐標
    ?????*?
    @param?starty:起點屏幕Y坐標
    ?????*?
    @param?endx:終點屏幕X坐標
    ?????*?
    @param?endy:終點屏幕Y坐標
    ?????*?
    @return
    ?????
    */

    ????
    public?Polygon?creatPolygon(Map?map,?String?startx,?String?starty,
    ????????????String?endx,?String?endy)?
    {
    ????????
    try?{
    ????????????Point?pnt1?
    =?map.toMapPoint(new?Double(startx).doubleValue(),
    ????????????????????
    new?Double(starty).doubleValue());
    ????????????Point?pnt2?
    =?map.toMapPoint(new?Double(endx).doubleValue(),
    ????????????????????
    new?Double(endy).doubleValue());
    ????????????Point?pnt11?
    =?new?Point();
    ????????????Point?pnt22?
    =?new?Point();
    ????????????pnt11.setX(pnt1.getX());
    ????????????pnt11.setY(pnt2.getY());
    ????????????pnt22.setX(pnt2.getX());
    ????????????pnt22.setY(pnt1.getY());
    ????????????Points?points?
    =?new?Points();
    ????????????points.addPointObject(pnt1);
    ????????????points.addPointObject(pnt11);
    ????????????points.addPointObject(pnt2);
    ????????????points.addPointObject(pnt22);
    ????????????Ring?ring?
    =?new?Ring();
    ????????????ring.setPoints(points);
    ????????????Polygon?polygon?
    =?new?Polygon();
    ????????????polygon.addRing(ring);
    ????????????
    return?polygon;
    ????????}
    ?catch?(Exception?ex)?{
    ????????????
    return?null;
    ????????}

    ????}

    }

    posted @ 2007-03-20 17:16 Kevin Meng 閱讀(384) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 精品无码人妻一区二区免费蜜桃| 亚洲国产一区视频| 国内精品免费视频精选在线观看| 亚洲精品无码久久| 亚洲理论在线观看| 久久亚洲国产欧洲精品一| 亚洲国产日韩成人综合天堂 | 亚洲黄色免费电影| 国产精品国产亚洲精品看不卡| 免费大黄网站在线观| 国内大片在线免费看| 无码精品A∨在线观看免费| 毛片在线全部免费观看| 久久久久久毛片免费看| 国产综合成人亚洲区| 亚洲色大成网站www永久男同| 亚洲人成免费电影| 亚洲精品动漫在线| 亚洲综合男人的天堂色婷婷| 亚洲好看的理论片电影| 亚洲av日韩av激情亚洲| 亚洲成AV人片在线观看WWW| 国产精品亚洲成在人线| 黑人精品videos亚洲人| 亚洲啪啪AV无码片| 亚洲午夜av影院| 亚洲日韩精品无码专区网站| 亚洲VA综合VA国产产VA中| 伊在人亚洲香蕉精品区麻豆| 免费A级毛片在线播放不收费| 国产一精品一aⅴ一免费| 国产免费无遮挡精品视频| 免费看a级黄色片| 国产精品二区三区免费播放心| 毛片免费观看的视频在线| 在线观看成人免费| 国产一区二区三区在线免费 | 亚洲国产成a人v在线| 亚洲国产电影在线观看| 亚洲婷婷第一狠人综合精品| 国产成人精品日本亚洲网址|