geoserver中文开发手册.doc

上传人:xin****828 文档编号:6613157 上传时间:2020-02-29 格式:DOC 页数:21 大小:751KB
返回 下载 相关 举报
geoserver中文开发手册.doc_第1页
第1页 / 共21页
geoserver中文开发手册.doc_第2页
第2页 / 共21页
geoserver中文开发手册.doc_第3页
第3页 / 共21页
点击查看更多>>
资源描述
geoserver中文开发手册一目录目录写在前面一介绍二工具JavaMavenSubversion三源代码源代码提交库结构分支结构四快速入门取出源代码由Maven构建由Maven生成Eclipse工程文件导入模块进Eclipse在Eclipse中运行GeoServer访问GeoServer首页五Maven指南六Eclipse指南七编程指南八释放指南九释放测试检查列表十CITE测试指南十一政策与步骤二介绍、工具、源代码三章一介绍空。二工具在GeoServer开发者环境搭建以前,需要安装以下工具:JavaGeoServer开发需要JDK1.5及其以上版本,可从Sun Microsystems获取。注:除了可以使用Sun提供的JDK以外,也可以使用其它的,但这里我们推荐使用Sun的。MavenGeoserver使用Maven工具构建。当前推荐版本是2.1.0,可从Apache获取。虽然2.1.0是推荐的,但2.0.8以上版本同样可用。SubversionGeoserver源代码由subversion库完成存储和版本管理。对于不同平台有多种subversion客户端可获取。更多细节请访问:http:/subversion.tigris.org/getting.html。三源代码源代码GeoServer源代码存放在:http:/svn.codehaus.org/geoserver。使用以下方式取出开发版/trunk版本svn co http:/svn.codehaus.org/geoserver/trunk geoserver使用以下方式取出稳定版/stable版本:svn co http:/svn.codehaus.org/geoserver/branches/1.7.x geoserver警告:Geoserver库包含大量空间数据。从上取出这些数据对于低带宽用户来说相对就很慢或者很昂贵,这种情况下,用户可以通过以下方式仅获取源代码:svn co http:/svn.codehaus.org/geoserver/trunk/src提交通过以下步骤提交到代码库:1.安装subversion配置文件,请看后面备注。2.注册获取提交权限。3.将库切换到”https”协议,例如:root of checkout% svn switch https:/svn.codehaus.org/geoserver/trunk库结构http:/svn.codehaus.org/geoserver/ branches/ spike/ tags/ trunk/branches包含以前所有稳定的开发分支,1.6.x,1.7.x,etcspike包含实验版本和原型tags包含以前所有释放版本trunk为当前开发分支。分支结构每个开发分支都有如下所示的结构:http:/svn.codehaus.org/geoserver/ doc/ src/ data/ldoc包含用户和开发人员向导的源文件lsrc包含Geoserver本身的Java源码ldata包含多种GeoServer的数据目录三快速入门本章介绍快速搭建、运行GeoServer开发环境具体步骤。我们假定您已经安装好所有必须的工具(内容见第二章)。注:本章的上的是为了尽快的让开发者搭建和运行GeoServer。对于一些更加深入的介绍请见Maven指南和Eclipse指南。l取出源代码l由Maven构建l由Maven生成Eclipse工程文件l导入模块进Eclipsel在Eclipse里运行GeoServerl访问GeoServer首页取出源代码由subversion库中取出源代码。选取trunk作为最新开发源码,或者那些基本不可能经常更新的版本的稳定分支。要么是:svncohttps:/svn.codehaus.org/geoserver/trunkgeoserver-trunk或者(稳定的1.7.x分支)svncohttps:/svn.codehaus.org/geoserver/branches/1.7.xgeoserver-1.7.x在这页示例里面,我们假定你取出源码到一个名为geoserver的目录,不过,最好还是把名字取得更详细一点为好。由Maven构建修改目录到源树的根,执行以下maven构建命令:cdgeoserver/srcmvncleaninstall成功构建后会产生类似于以下的输出:INFOINFOINFO-INFOReactorSummary:INFO-INFOGeoServer.SUCCESS10.271sINFOGeoServerMavenPlugins.SUCCESS0.865sINFOConfigurationDeploymentPlugIn.SUCCESS3.820sINFOGeoServerMavenArchetypes.SUCCESS0.054sINFOGeoServerWFSOutputFormatArchetype.SUCCESS0.390sINFOCorePlatformModule.SUCCESS5.270sINFODataModule.SUCCESS4.521sINFOOpenWebServiceModule.SUCCESS2.730sINFOMainModule.SUCCESS10.077sINFOWebCoverageServiceModule.SUCCESS3.785sINFOWebCoverageService1.1.1Module.SUCCESS5.254sINFOValidationModule.SUCCESS1.131sINFOWebFeatureServiceModule.SUCCESS6.695sINFOWebFeatureServiceModule.SUCCESS1.197sINFOWebMapServiceModule.SUCCESS8.519sINFOGeoserverRESTSupportCode.SUCCESS3.366sINFOGeoWebCache(GWC)Module.SUCCESS0.255sINFOWebApplicationModule.SUCCESS27.386sINFOCommunitySpace.SUCCESS0.312sINFOGeoServerExtensions.SUCCESS0.071sINFO-INFO-INFOBUILDSUCCESSFULINFO-由Maven生成Eclipse工程文件生成Eclipse使用的.project文件和.classpath文件:mvneclipse:eclipse导入模块进Eclipse1.启动运行Eclipse集成开发环境2.打开Eclipse首选项Preferences3.依次点击进入:Java,BuildPath,ClasspathVariables,点击New4.创建类路径变量名称”M2_REPO”,并且设置它的值为本地Maven库的位置,点击OK。5.单击OK以应用新的Eclipse首选项。6.在包浏览PackageExplorer右键并单击导入Import7.选择已有工程导入工作区ExistingProjectsintoWorkspace,单击下一步:8.进入geoserver/src目录9.确保所有模块都被选取,单击完成Finish在Eclipse中运行GeoServer1.在包浏览PackageExplorer中选择web-app模块(1.7.x或更早版本是web)2.点击进入org.geoserver.web包(1.7.x或更早版本是org.vfny.geoserver.jetty)3.在Start类上右键,单击Runas,JavaApplication访问GeoServer首页l几秒后,就可通过http:/localhost:8080/geoserver访问到GeoServerl默认的用户admin的密码是geoserver四Maven指南本章是使用Maven构建GeoServer的参考。安装Maven见工具(第二章)运行MavenMaven提供了从模块编译到生成测试覆盖报告的多种命令。大部分maven命令可在源树的根运行,或者某个特模块。注:在准备由源树的根运行maven命令时,请记住要将取出的根目录变换到src目录。在由源树的根运行一个命令时,或者从包含其它模块的目录时,命令将会为所有模块运行。当从单个模块运行命令时,它只为这个模块运行。构建GeoServer最常用的命令是安装命令:mvncleaninstall虽然clean命令不是必须的,但我们还是推荐用上。上面的命令做了以下的事:编译源代码运行单元测试安装成果到本地Maven库跳过测试通常在构建时跳过单元测试很有用处。在构建命令中添加-DskipTests标志就可以只编译单元测试而不会运行测试。mvn-DskipTestscleaninstall离线构建Maven操作会自动下载待构建模块中声明的依赖库。当处理快照(SNAPSHOT)依赖时,这就有可能会有问题。Maven每次执行一天内的首次构建时,会尝试更新它的快照依赖。由于GeoServer依赖GeoTools库的快照版本,这时可能会有问题。最终导致Maven下载大量GeoTools更新模块并且急剧增加构建时间。而如果你只是本地构建geotools,这些就显得不必要了。这时,可以使用“离线”方式运行Maven来改进:mvn-ocleaninstall在离线模式中,Maven不会下载任何外部依赖,也不会更新任何快照依赖。构建扩展默认情况下,扩展没有被包含在构建中。它们得通过Profile来明确增加到构建中。比如下面的示例就将restconfig扩展添加到构建中:mvncleaninstall-Prestconfig可以同时添加多个扩展同时使用:mvncleaninstall-Prestconfig,oracle有个特殊的名为allExtensions的Profile可以添加所有扩展:mvncleaninstall-PallExtensionsProfilesEclipseMaven的Eclipse插件用于为模块生成eclipse工程:mvneclipse:eclipse经过此操作后,这些模块就可以导入Eclipse工作区。该插件有个很有用的功能就是可下载第三方依赖的相关源代码。这是通过添加downloadSources标志来做的:mvn-DdownloadSourceseclipse:eclipse警告:当你首次启用downloadSources标志时,构建过程需要很长时间,因为它要下载GeoServer所依赖的每个库的源代码。构建Web模块当安装好web模块后,它会通过内建的特殊配置构建。默认情况下它注是minimal配置。尽管如此,它也可以通过设置configId和configDirectory标志来定制任意配置。比如:mvncleaninstall-DconfigId=release-DconfigDirectory=/home/jdeolive/geoserver_1.7.x/data上面命令可使用GeoServer上的release配置构建web模块。configId是包含的配置目录名称,configDirectory是包含的配置目录的父级目录。configDirectory可以像刚才的一样的绝对路径,也可以是针对web模块自身的相对路径:mvncleaninstall-DconfigId=release-DconfigDirectory=./././data上面的命令与之前有同样的效果,尽管是引用了相对于web模块的路径。该路径,./././data,在GeoServer取出(checkout)的代码目录结构是标准结构的情况下可用。使用Jetty运行web模块Maven的jetty插件可用于运行嵌入了jetty容器的基于web的模块:cdgeoserver_1.7.x/src/webmvnjetty:run注:该命令必须从web模块运行,如果从其它模块运行就会失败。上面的命令将会使用自带的数据目录来运行GeoServer。为了使用其它的数据目录可以启用GEOSERVER_DATA_DIR标志:mvn-DGEOSERVER_DATA_DIR=/path/to/datadirjetty:run五Eclipse指南本章是使用Eclipse开发GeoServer的参考。导入模块运行和调试设置数据目录更改Jetty默认端口配置Jetty中JNDI资源Eclipse首选项代码格式化代码模块文本编辑器编译器导入模块参见Maven指南中的Eclipse部分。运行和调试运行和调试web-app模块中org.geoserver.web.Start类。具体步骤见快速入门。设置数据目录如果未设置,GeoServer默认会使用web-app模块里的minimal目录作为它的数据目录。若要修改,执行以下步骤:1.在Eclipse菜单中打开调试配置(DebugConfigurations)2.先把Start配置,选择Argument面板,并且填写-DGEOSERVER_DATA_DIR参数,设置数据目录为绝对路径。更改Jetty默认端口如果未设置,Jetty默认会使用8080端口。修改请按以下方式:1.打开上节所说的Start配置中的Argument面板。2.填写-Djetty.port参数,设置它到期望的端口配置Jetty的JNDI资源JNDI资源如数据资源可以通过提供系统属性中名为jetty.config.file的Jetty服务器配置文件来配置,这个可以在Start配置中的Argument面板上通过VMargument参数指定。配置文件路径是相对于web-app模块根路径的,该模块是启动配置运行的地方。例如:-Djetty.config.file=./././././settings/jetty.xml以下的Jetty服务器配置文件就配置了一个JNDI数据源:jdbc/demo,它是一个Oracle数据库的连接池。jdbc/demooracle.jdbc.driver.OracleDriverjdbc:oracle:thin:oracle.example.com:1521:demodbclaudiuss3cr3t201001000030000030000020true100trueSELECTSYSDATEFROMDUALJetty没有在GeoServer的WEB-INF/web.xml指定reference-ref,因此没必要修改该文件。GeoServerweb-app模块和数据目录没有特定于Jetty的相关信息,因此JNDI资源可以被测试在Jetty下,以便于后面在Tomcat下的开发。也可以看看GeoServer用户手册中Tomcat中建立JNDI连接池章节。Eclipse首选项代码格式化1.下载文件:http:/svn.osgeo.org/geotools/trunk/build/eclipse/formatter.xml2.转到首选项中Java,CodeStyle,Formatter,点击Import3.选择步骤1中下载的formatter.xml文件。4.点击Apply代码模板1.下载文件:http:/svn.osgeo.org/geotools/trunk/build/eclipse/codetemplates.xml2.转到首选项Java,CodeStyle,Formatter,点击Important3.选择步骤1中下载的formatter.xml文件。4.点击Apply文本编辑器1.转到General,Editors,TextEditors2.选中InsertSpacefortabs3.选中Showprintmargin,将Printmargincolumn设置为1004.选中Showlinenumbers5.选中Showwhitespacecharacters(可选)注:显示空白字符可帮助我们发现无意中提交不必要的空格。6.点击Apply编译器1.转到Java,Compiler,Building2.扩展开Outputfolder,并将.svn/加到Filteredresources列表中。3.点击Apply六编程指南OWS服务本节介绍GeoServer中OWS服务(原文为RESTful服务,可能为笔误)如何工作。OWS服务概览TBA实现一个简单的OWS服务本节将通过以下场景来介绍如何给GeoServer创建一个简单的GeoServerOWS服务。该服务需要提供一个能广告叫做“sayHello”的单一操作的功能(capabilities)文档。该sayHello操作的结果是一个简单的字符串:“HelloWorld”。内容:实现一个简单的OWS服务l建立l创建插件l试一试建立创建插件的第一步是为它建立一个maven工程。该工程我们称为“hello”。1.在本地文件系统中任意地方创建一个名为hello的新目录。2.给hello目录添加名为pom.xml文件。1.2. 3. 4. 4.0.05. 6. 7. org.geoserver8. community9. 2.0.110. 11. org.geoserver12. hello13. jar14. 1.015. HelloWorldServiceModule16. 17. 18. org.geoserver19. main20. 2.0.121. 22. 23. 24. 25. opengeo26. opengeo27. http:/repo.opengeo.org28. 29. 30. 复制代码3.在hello目录下创建Java源文件目录。hello/+pom.xml+src/+main/+java/创建插件插件是一系列由springbeans实现的扩展。实例中扩展兴趣点是一个HelloWorld的POJO。1.创建一个名为HelloWorld的类: 1. importjava.io.IOException;2. importjavax.servlet.ServletException;3. importjavax.servlet.http.HttpServletRequest;4. importjavax.servlet.http.HttpServletResponse;5. publicclassHelloWorld6. publicHelloWorld()7. /Donothing8. 9. publicvoidsayHello(HttpServletRequestrequest,HttpServletResponseresponse)10. throwsServletException,IOException11. response.getOutputStream().write(HelloWorld.getBytes();12. 13. 复制代码该服务相对比较简单。它提供了一个一个名为sayHello的方法,带有HttpServletRequest,HttpServletResponse参数。该函数的参数列表会由org.geoserver.ows.Dispatcher自动发现。2.创建applicationContext.xml文件将上面的类申明为一个bean。1. 2.3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. sayHello21. 22. 23. 24. 复制代码到此,hello工程内容应该是看上去像下面这样了:hello/+pom.xml+src/+main/+java/+HelloWorld.java+applicationContext.xml试一试1.安装hello模块。1. hello%mvninstall2. hello%mvninstall3. INFOScanningforprojects.4. INFO-5. INFOBuildingHelloWorldServiceModule6. INFOtask-segment:install7. INFO-8. INFOresources:resources9. INFOUsingdefaultencodingtocopyfilteredresources.10. INFOcompiler:compile11. INFOCompiling1sourcefileto/home/ak/geoserver/community/hello/target/classes12. INFOresources:testResources13. INFOUsingdefaultencodingtocopyfilteredresources.14. INFOcompiler:testCompileINFONosourcestocompile15. INFOsurefire:testINFONoteststorun.16. INFOjar:jar17. INFOBuildingjar:/home/ak/geoserver/community/hello/target/hello-1.0.jar18. INFOjar:test-jarexecution:defaultWARNINGJARwillbeempty-nocontentwasmarkedforinclusion!19. INFOBuildingjar:/home/ak/geoserver/community/hello/target/hello-1.0-tests.jar20. INFOinstall:install21. INFOInstalling/home/ak/geoserver/community/hello/target/hello-1.0.jarto/home/ak/.m2/repository/org/geoserver/hello/1.0/hello-1.0.jar22. INFOInstalling/home/ak/geoserver/community/hello/target/hello-1.0-tests.jarto/home/ak/.m2/repository/org/geoserver/hello/1.0/hello-1.0-tests.jar23. INFO-24. INFOBUILDSUCCESSFUL25. INFO-26. INFOTotaltime:6seconds27. INFOFinishedat:FriSep2114:52:31EDT200728. INFOFinalMemory:27M/178M29. INFO-复制代码1.拷贝target/hello-1.0.jar文件到到你的GeoServer安装的WEB-INF/lib目录。2.重启GeoServer。3.访问:http:/geoserver/ows?request=sayHello&service=hello&version=1.0.0请求request我们服务内定义的方法服务serviceapplicationContext.xml文件中Service描述符的名称版本versionapplicationContext.xml文件中Service描述符的版本可选方法1.与web模块一起构建另外一个可选方法是在新的插件工程上从web模块申明一个依赖。1.像上面一样安装hello模块。2.编辑web/pom.xml,添加如下依赖:org.geoserverhello1.03.安装、运行web模块webmvninstalljetty:run4.访问:http:/localhost:8080/geoserver/ows?request=sayHello&service=hello&version=1.0.0可选方法2:由GeoServer源中运行作为尝试插件开发的一种可选方法:1.安装hello模块。2.更改路径到web模块3.安装web模块。4.拷贝/target/hello-1.0.jar文件到/target/geoserver/WEB-INF/lib目录:/dev/geoserver/web%cp/hello/target/hello-1.0.jartarget/geoserver/WEB-INF/lib5.使用Jetty运行打包的war。/dev/geoserver/web%mvnjetty6:run-exploded6.访问:http:/localhost:8080/geoserver/ows?request=sayHello&service=hello&version=1.0.0
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!