geoserver中文開(kāi)發(fā)手冊(cè)_第1頁(yè)
geoserver中文開(kāi)發(fā)手冊(cè)_第2頁(yè)
geoserver中文開(kāi)發(fā)手冊(cè)_第3頁(yè)
geoserver中文開(kāi)發(fā)手冊(cè)_第4頁(yè)
geoserver中文開(kāi)發(fā)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、geoserver中文開(kāi)發(fā)手冊(cè)一目錄目 錄寫在前面一 介紹二 工具JavaMavenSubversion三 源代碼源代碼提交庫(kù)結(jié)構(gòu)分支結(jié)構(gòu)四 快速入門取出源代碼由Maven構(gòu)建由Maven生成Eclipse工程文件導(dǎo)入模塊進(jìn)Eclipse在Eclipse中運(yùn)行GeoServer訪問(wèn)GeoServer首頁(yè)五 Maven指南六 Eclipse指南七 編程指南八 釋放指南九 釋放測(cè)試檢查列表十 CITE測(cè)試指南十一 政策與步驟二介紹、工具、源代碼三章一 介紹空。二

2、0;工具在GeoServer開(kāi)發(fā)者環(huán)境搭建以前,需要安裝以下工具:JavaGeoServer開(kāi)發(fā)需要JDK1.5及其以上版本,可從Sun Microsystems獲取。注:除了可以使用Sun提供的JDK以外,也可以使用其它的,但這里我們推薦使用Sun的。MavenGeoserver使用Maven工具構(gòu)建。當(dāng)前推薦版本是,可從Apache獲取。雖然是推薦的,但以上版本同樣可用。SubversionGeoserver源代碼由subversion庫(kù)完成存儲(chǔ)和版本管理。對(duì)于不同平臺(tái)有多種subversion客戶端可獲取。更多細(xì)節(jié)請(qǐng)?jiān)L問(wèn): 。三 源代碼源代碼GeoServer源代碼存

3、放在: 。使用以下方式取出開(kāi)發(fā)版/trunk版本使用以下方式取出穩(wěn)定版/stable版本:警告:Geoserver庫(kù)包含大量空間數(shù)據(jù)。從上取出這些數(shù)據(jù)對(duì)于低帶寬用戶來(lái)說(shuō)相對(duì)就很慢或者很昂貴,這種情況下,用戶可以通過(guò)以下方式僅獲取源代碼:提交通過(guò)以下步驟提交到代碼庫(kù):1. 安裝subversion配置文件,請(qǐng)看后面?zhèn)渥ⅰ?. 注冊(cè)獲取提交權(quán)限。3. 將庫(kù)切換到”https”協(xié)議,例如: 庫(kù)結(jié)構(gòu)   branches/   spike/   tags/   trunk/

4、 branches包含以前所有穩(wěn)定的開(kāi)發(fā)分支,etc spike包含實(shí)驗(yàn)版本和原型 tags包含以前所有釋放版本 trunk為當(dāng)前開(kāi)發(fā)分支。分支結(jié)構(gòu)每個(gè)開(kāi)發(fā)分支都有如下所示的結(jié)構(gòu):   doc/   src/   data/l doc包含用戶和開(kāi)發(fā)人員向?qū)У脑次募 src包含Geoserver本身的Java源碼l data包含多種GeoServer的數(shù)據(jù)目錄 三快速入門本章介紹快速搭建、運(yùn)行GeoServer開(kāi)發(fā)環(huán)境具體步驟。我們假定您已經(jīng)安裝好所有必須

5、的工具(內(nèi)容見(jiàn)第二章)。注:本章的上的是為了盡快的讓開(kāi)發(fā)者搭建和運(yùn)行GeoServer。對(duì)于一些更加深入的介紹請(qǐng)見(jiàn)Maven指南和Eclipse指南。l取出源代碼l由Maven構(gòu)建l由Maven生成Eclipse工程文件l導(dǎo)入模塊進(jìn)Eclipsel在Eclipse里運(yùn)行GeoServerl訪問(wèn)GeoServer首頁(yè)取出源代碼由subversion庫(kù)中取出源代碼。選取trunk作為最新開(kāi)發(fā)源碼,或者那些基本不可能經(jīng)常更新的版本的穩(wěn)定分支。要么是:svn co  geoserver-trunk或者(穩(wěn)定的分支)svn co  在這頁(yè)示例里

6、面,我們假定你取出源碼到一個(gè)名為geoserver的目錄,不過(guò),最好還是把名字取得更詳細(xì)一點(diǎn)為好。由Maven構(gòu)建修改目錄到源樹(shù)的根,執(zhí)行以下maven構(gòu)建命令:cd geoserver/srcmvn clean install成功構(gòu)建后會(huì)產(chǎn)生類似于以下的輸出:INFOINFOINFO -INFO Reactor Summary:INFO -INFO GeoServer . SUCCESS 10.271sINFO GeoServer Maven Plugi

7、ns . SUCCESS 0.865sINFO Configuration Deployment PlugIn . SUCCESS 3.820sINFO GeoServer Maven Archetypes . SUCCESS 0.054sINFO GeoServer WFS Output Format Archetype . SUCCESS 0.390sINFO&#

8、160;Core Platform Module . SUCCESS 5.270sINFO Data Module . SUCCESS 4.521sINFO Open Web Service Module . SUCCESS 2.730sINFO Main Module . SUCCESS 10.077sINFO Web Coverage Serv

9、ice Module . SUCCESS 3.785sINFO Web Coverage Service 1.1.1 Module . SUCCESS 5.254sINFO Validation Module . SUCCESS 1.131sINFO Web Feature Service Module . SUCCESS 6.695sINFO W

10、eb Feature Service Module . SUCCESS 1.197sINFO Web Map Service Module . SUCCESS 8.519sINFO Geoserver REST Support Code . SUCCESS 3.366sINFO GeoWebCache (GWC) Module . SUCCESS&

11、#160;0.255sINFO Web Application Module . SUCCESS 27.386sINFO Community Space . SUCCESS 0.312sINFO GeoServer Extensions . SUCCESS 0.071sINFO -INFO -INFO BUILD SUCCESSFULINFO -由Maven生成Eclipse工程文件生成

12、Eclipse使用的.project文件和.classpath文件:mvn eclipse:eclipse導(dǎo)入模塊進(jìn)Eclipse1.啟動(dòng)運(yùn)行Eclipse集成開(kāi)發(fā)環(huán)境2.打開(kāi)Eclipse首選項(xiàng)Preferences3.依次點(diǎn)擊進(jìn)入:Java,BuildPath,Classpath Variables,點(diǎn)擊New 4.創(chuàng)建類路徑變量名稱”M2_REPO”,并且設(shè)置它的值為本地Maven庫(kù)的位置,點(diǎn)擊OK。 5.單擊OK以應(yīng)用新的Eclipse首選項(xiàng)。6.在包瀏覽Package Explorer右鍵并單擊導(dǎo)入Import 7.選擇已有

13、工程導(dǎo)入工作區(qū) Existing Projects into Workspace,單擊下一步: 8.進(jìn)入geoserver/src目錄9.確保所有模塊都被選取,單擊完成Finish 在Eclipse中運(yùn)行GeoServer1.在包瀏覽Package Explorer中選擇web-app模塊(或更早版本是web)2.點(diǎn)擊進(jìn)入包(或更早版本是)3.在Start類上右鍵,單擊Run as, Java Application 訪問(wèn)GeoServer首頁(yè)l幾秒后,就可通過(guò)http:/localh

14、ost:8080/geoserver訪問(wèn)到GeoServerl默認(rèn)的用戶admin的密碼是geoserver 四Maven指南本章是使用Maven構(gòu)建GeoServer的參考。安裝Maven見(jiàn)工具(第二章)運(yùn)行MavenMaven提供了從模塊編譯到生成測(cè)試覆蓋報(bào)告的多種命令。大部分maven命令可在源樹(shù)的根運(yùn)行,或者某個(gè)特模塊。注:在準(zhǔn)備由源樹(shù)的根運(yùn)行maven命令時(shí),請(qǐng)記住要將取出的根目錄變換到src目錄。在由源樹(shù)的根運(yùn)行一個(gè)命令時(shí),或者從包含其它模塊的目錄時(shí),命令將會(huì)為所有模塊運(yùn)行。當(dāng)從單個(gè)模塊運(yùn)行命令時(shí),它只為這個(gè)模塊運(yùn)行。構(gòu)建GeoServer最常用的命令是安裝命令:mvn&

15、#160;clean install雖然clean命令不是必須的,但我們還是推薦用上。上面的命令做了以下的事:編譯源代碼運(yùn)行單元測(cè)試安裝成果到本地Maven庫(kù)跳過(guò)測(cè)試通常在構(gòu)建時(shí)跳過(guò)單元測(cè)試很有用處。在構(gòu)建命令中添加-DskipTests標(biāo)志就可以只編譯單元測(cè)試而不會(huì)運(yùn)行測(cè)試。mvn -DskipTests clean install離線構(gòu)建Maven操作會(huì)自動(dòng)下載待構(gòu)建模塊中聲明的依賴庫(kù)。當(dāng)處理快照(SNAPSHOT)依賴時(shí),這就有可能會(huì)有問(wèn)題。Maven每次執(zhí)行一天內(nèi)的首次構(gòu)建時(shí),會(huì)嘗試更新它的快照依賴。由于GeoServer依賴GeoTools庫(kù)的

16、快照版本,這時(shí)可能會(huì)有問(wèn)題。最終導(dǎo)致Maven下載大量GeoTools更新模塊并且急劇增加構(gòu)建時(shí)間。而如果你只是本地構(gòu)建geotools,這些就顯得不必要了。這時(shí),可以使用“離線”方式運(yùn)行Maven來(lái)改進(jìn):mvn -o clean install在離線模式中,Maven不會(huì)下載任何外部依賴,也不會(huì)更新任何快照依賴。構(gòu)建擴(kuò)展默認(rèn)情況下,擴(kuò)展沒(méi)有被包含在構(gòu)建中。它們得通過(guò)Profile來(lái)明確增加到構(gòu)建中。比如下面的示例就將restconfig擴(kuò)展添加到構(gòu)建中:mvn clean install -P restconfig可以同時(shí)

17、添加多個(gè)擴(kuò)展同時(shí)使用:mvn clean install -P restconfig,oracle有個(gè)特殊的名為allExtensions的Profile可以添加所有擴(kuò)展:mvn clean install -P allExtensionsProfilesEclipseMaven的Eclipse插件用于為模塊生成eclipse工程:mvn eclipse:eclipse經(jīng)過(guò)此操作后,這些模塊就可以導(dǎo)入Eclipse工作區(qū)。該插件有個(gè)很有用的功能就是可下載第三方依賴的相關(guān)源代碼。這是通過(guò)添加download

18、Sources標(biāo)志來(lái)做的:mvn -DdownloadSources eclipse:eclipse警告:當(dāng)你首次啟用downloadSources標(biāo)志時(shí),構(gòu)建過(guò)程需要很長(zhǎng)時(shí)間,因?yàn)樗螺dGeoServer所依賴的每個(gè)庫(kù)的源代碼。構(gòu)建Web模塊當(dāng)安裝好web模塊后,它會(huì)通過(guò)內(nèi)建的特殊配置構(gòu)建。默認(rèn)情況下它注是minimal配置。盡管如此,它也可以通過(guò)設(shè)置configId和configDirectory標(biāo)志來(lái)定制任意配置。比如:mvn clean install -DconfigId=release -DconfigDirectory

19、=/home/jdeolive/geoserver_1.7.x/data上面命令可使用GeoServer上的release配置構(gòu)建web模塊。configId是包含的配置目錄名稱,configDirectory是包含的配置目錄的父級(jí)目錄。configDirectory可以像剛才的一樣的絕對(duì)路徑,也可以是針對(duì)web模塊自身的相對(duì)路徑:mvn clean install -DconfigId=release -DconfigDirectory=./././data上面的命令與之前有同樣的效果,盡管是引用了相對(duì)于web模塊的路徑。該路徑,./././data,

20、在GeoServer取出(check out)的代碼目錄結(jié)構(gòu)是標(biāo)準(zhǔn)結(jié)構(gòu)的情況下可用。使用Jetty運(yùn)行web模塊Maven的jetty插件可用于運(yùn)行嵌入了jetty容器的基于web的模塊:cd geoserver_1.7.x/src/webmvn jetty:run注:該命令必須從web模塊運(yùn)行,如果從其它模塊運(yùn)行就會(huì)失敗。上面的命令將會(huì)使用自帶的數(shù)據(jù)目錄來(lái)運(yùn)行GeoServer。為了使用其它的數(shù)據(jù)目錄可以啟用GEOSERVER_DATA_DIR標(biāo)志:mvn -DGEOSERVER_DATA_DIR=/path/to/datadir jetty

21、:run五Eclipse指南本章是使用Eclipse開(kāi)發(fā)GeoServer的參考。導(dǎo)入模塊運(yùn)行和調(diào)試設(shè)置數(shù)據(jù)目錄更改Jetty默認(rèn)端口配置Jetty中JNDI資源Eclipse首選項(xiàng)代碼格式化代碼模塊文本編輯器編譯器導(dǎo)入模塊參見(jiàn)Maven指南中的Eclipse部分。運(yùn)行和調(diào)試運(yùn)行和調(diào)試web-app模塊中類。具體步驟見(jiàn)快速入門。設(shè)置數(shù)據(jù)目錄如果未設(shè)置,GeoServer默認(rèn)會(huì)使用web-app模塊里的minimal目錄作為它的數(shù)據(jù)目錄。若要修改,執(zhí)行以下步驟:1.在Eclipse菜單中打開(kāi)調(diào)試配置(Debug Configurations) 2.先把Start配置,選擇Ar

22、gument面板,并且填寫-DGEOSERVER_DATA_DIR參數(shù),設(shè)置數(shù)據(jù)目錄為絕對(duì)路徑。 更改Jetty默認(rèn)端口如果未設(shè)置,Jetty默認(rèn)會(huì)使用8080端口。修改請(qǐng)按以下方式:1.打開(kāi)上節(jié)所說(shuō)的Start配置中的Argument面板。2.填寫-Djetty.port參數(shù),設(shè)置它到期望的端口 配置Jetty的JNDI資源JNDI資源如數(shù)據(jù)資源可以通過(guò)提供系統(tǒng)屬性中名為的Jetty服務(wù)器配置文件來(lái)配置,這個(gè)可以在Start配置中的Argument面板上通過(guò)VM argument參數(shù)指定。配置文件路徑是相對(duì)于web-app模塊根路徑的,該模塊是啟動(dòng)配置運(yùn)行的地方

23、。例如:-Djetty.config.file=./././././settings/jetty.xml以下的Jetty服務(wù)器配置文件就配置了一個(gè)JNDI數(shù)據(jù)源:jdbc/demo,它是一個(gè)Oracle數(shù)據(jù)庫(kù)的連接池。  jdbc/demo   jdbc:oracle:thin:1521:demodb                claudius   &#

24、160;          s3cr3t               20          10          0  

25、60;10000      300000   300000 20  true    100  true      SELECT SYSDATE FROM DUAL              

26、              Jetty沒(méi)有在GeoServer的WEB-INF/web.xml指定reference-ref,因此沒(méi)必要修改該文件。GeoServer web-app模塊和數(shù)據(jù)目錄沒(méi)有特定于Jetty的相關(guān)信息,因此JNDI資源可以被測(cè)試在Jetty下,以便于后面在Tomcat下的開(kāi)發(fā)。也可以看看GeoServer用戶手冊(cè)中Tomcat中建立JNDI連接池章節(jié)。Eclipse首選項(xiàng)代碼格式化1.下載文件:2.轉(zhuǎn)到首選項(xiàng)中Java,

27、Code Style,F(xiàn)ormatter,點(diǎn)擊Import 3.選擇步驟1中下載的formatter.xml文件。4.點(diǎn)擊Apply 代碼模板1.下載文件:2.轉(zhuǎn)到首選項(xiàng)Java,Code Style, Formatter,點(diǎn)擊Important 3.選擇步驟1中下載的formatter.xml文件。4.點(diǎn)擊Apply文本編輯器1.轉(zhuǎn)到General,Editors,Text Editors2.選中Insert Space for tabs3.選中Show print mar

28、gin,將Print margin column設(shè)置為1004.選中Show line numbers5.選中Show whitespace characters(可選)注:顯示空白字符可幫助我們發(fā)現(xiàn)無(wú)意中提交不必要的空格。 6.點(diǎn)擊Apply編譯器1.轉(zhuǎn)到Java, Compiler, Building2.擴(kuò)展開(kāi)Output folder,并將.svn/加到Filtered resources列表中。  3.點(diǎn)擊Apply六編程指南OWS服務(wù)本節(jié)介紹GeoServ

29、er中OWS服務(wù)(原文為RESTful服務(wù),可能為筆誤)如何工作。OWS服務(wù)概覽TBA實(shí)現(xiàn)一個(gè)簡(jiǎn)單的OWS服務(wù)本節(jié)將通過(guò)以下場(chǎng)景來(lái)介紹如何給GeoServer創(chuàng)建一個(gè)簡(jiǎn)單的GeoServer OWS服務(wù)。該服務(wù)需要提供一個(gè)能廣告叫做“sayHello”的單一操作的功能(capabilities)文檔。該sayHello操作的結(jié)果是一個(gè)簡(jiǎn)單的字符串:“Hello World”。內(nèi)容: 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的OWS服務(wù)l建立l創(chuàng)建插件l試一試建立創(chuàng)建插件的第一步是為它建立一個(gè)maven工程。該工程我們稱為“hello”。1.在本地文件系統(tǒng)中任意地方創(chuàng)建一個(gè)名為hello的新目

30、錄。2.給hello目錄添加名為pom.xml文件。1.2. <?xml version="1.0" encoding="ISO-8859-1"?>3. <project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"  xsi:schemaLocation="http:/maven.apa

31、/POM/4.0.0 /maven-v4_0_0.xsd">4.    <modelVersion>4.0.0</modelVersion>5.    <!- set parent pom to community pom ->6.   <parent>7.     <g

32、roupId>org.geoserver</groupId>8.     <artifactId>community</artifactId>9.     <version>2.0.1</version>10.   </parent>11.    <groupId>org.geoserver</groupId>12.   <artifact

33、Id>hello</artifactId>13.   <packaging>jar</packaging>14.   <version>1.0</version>15.   <name> Hello World Service Module</name>16.   <dependencies>17.     <dependency

34、>18.       <groupId>org.geoserver</groupId>19.       <artifactId>main</artifactId>20.       <version>2.0.1</version>21.     </dependency>22. 

35、0; </dependencies>23.    <repositories>24.     <repository>25.        <id>opengeo</id>26.        <name>opengeo</name>27.     

36、60;  <url></url>28.     </repository>29.   </repositories>30. </project>復(fù)制代碼3.在hello目錄下創(chuàng)建Java源文件目錄。hello/+ pom.xml+ src/+ main/+ java/創(chuàng)建插件插件是一系列由spring beans實(shí)現(xiàn)的擴(kuò)展。實(shí)例中擴(kuò)展興趣點(diǎn)是一個(gè)HelloWorl

37、d的POJO。1.創(chuàng)建一個(gè)名為HelloWorld的類: 1. import java.io.IOException;2. import javax.servlet.ServletException;3. import javax.servlet.http.HttpServletRequest;4. import javax.servlet.http.HttpServletResponse;5. public class HelloWorld    6.   public&#

38、160;HelloWorld()   7.    / Do nothing 8.   9.   public void sayHello(HttpServletRequest request, HttpServletResponse response)10.        throws ServletException, IOE

39、xception  11.           response.getOutputStream().write( "Hello World".getBytes() );12.     13.   復(fù)制代碼該服務(wù)相對(duì)比較簡(jiǎn)單。它提供了一個(gè)一個(gè)名為sayHello的方法,帶有HttpServletRequest,HttpServletResponse參數(shù)。該函數(shù)的參數(shù)列

40、表會(huì)由自動(dòng)發(fā)現(xiàn)。2.創(chuàng)建applicationContext.xml文件將上面的類申明為一個(gè)bean。1. <?xml version="1.0" encoding="UTF-8"?>2.3. <!DOCTYPE beans PUBLIC "-/SPRING/DTD BEAN/EN" "/dtd/spring-beans.dtd">4. <beans>5

41、.     <!- Spring will reference the instance of the HelloWorld class           by the id name "helloService" ->6.     &

42、lt;bean id="helloService" class="HelloWorld">7.         </bean>8.      <!- This creates a Service descriptor, which allows the org.geoserver.ows.Dis

43、patcher           to locate it. ->9.         <bean id="helloService-1.0.0" class="org.geoserver.platform.Service">10.     <!-

44、60;used to reference the service in the URL ->11.         <constructor-arg index="0" value="hello"/>12.          <!- our ac

45、tual service POJO defined previously ->13.         <constructor-arg index="1" ref="helloService"/>14.          <!- a version number&#

46、160;for this service ->15.         <constructor-arg index="2" value="1.0.0"/>16.          <!- a list of functions for this 

47、service ->17.         <constructor-arg index="3">18.             <list>19.                

48、 <value>20. sayHello</value>21.             </list>22.         </constructor-arg>23.          </bean>24. </beans>復(fù)

49、制代碼到此,hello工程內(nèi)容應(yīng)該是看上去像下面這樣了:hello/+ pom.xml+ src/+ main/+ java/+ HelloWorld.java+ applicationContext.xml試一試1.安裝hello模塊。1. hello% mvn install2. hello% mvn install 3. INFO Scanning for projects.4. INFO -5. INFO Building Hello World Service Module6. INFO task-segment: install7. INFO -8. INFO resources:resources9. INFO Using default encoding to copy filtered resources.10. INFO compiler:compile11. INFO Compiling 1 source&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論