geoserver中文开发手册.docx

上传人:b****3 文档编号:4142674 上传时间:2022-11-28 格式:DOCX 页数:25 大小:579.72KB
下载 相关 举报
geoserver中文开发手册.docx_第1页
第1页 / 共25页
geoserver中文开发手册.docx_第2页
第2页 / 共25页
geoserver中文开发手册.docx_第3页
第3页 / 共25页
geoserver中文开发手册.docx_第4页
第4页 / 共25页
geoserver中文开发手册.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

geoserver中文开发手册.docx

《geoserver中文开发手册.docx》由会员分享,可在线阅读,更多相关《geoserver中文开发手册.docx(25页珍藏版)》请在冰豆网上搜索。

geoserver中文开发手册.docx

geoserver中文开发手册

geoserver中文开发手册

一.目录

目?

写在前面

一?

介绍

二?

工具

Java

Maven

Subversion

三?

源代码

源代码

提交

库结构

分支结构

四?

快速入门

取出源代码

由Maven构建

由Maven生成Eclipse工程文件

导入模块进Eclipse

在Eclipse中运行GeoServer

访问GeoServer首页

五?

Maven指南

六?

Eclipse指南

七?

编程指南

八?

释放指南

九?

释放测试检查列表

十?

CITE测试指南

十一?

政策与步骤

二.介绍、工具、源代码三章

一?

介绍

空。

二?

工具

在GeoServer开发者环境搭建以前,需要安装以下工具:

Java

GeoServer开发需要JDK1.5及其以上版本,可从SunMicrosystems获取。

注:

除了可以使用Sun提供的JDK以外,也可以使用其它的,但这里我们推荐使用Sun的。

Maven

Geoserver使用Maven工具构建。

当前推荐版本是2.1.0,可从Apache获取。

虽然2.1.0是推荐的,但2.0.8以上版本同样可用。

Subversion

Geoserver源代码由subversion库完成存储和版本管理。

对于不同平台有多种subversion客户端可获取。

更多细节请访问:

?

三?

源代码

源代码

GeoServer源代码存放在:

?

使用以下方式取出开发版/trunk版本

使用以下方式取出稳定版/stable版本:

警告:

Geoserver库包含大量空间数据。

从上取出这些数据对于低带宽用户来说相对就很慢或者很昂贵,这种情况下,用户可以通过以下方式仅获取源代码:

提交

通过以下步骤提交到代码库:

1.?

安装subversion配置文件,请看后面备注。

2.?

注册获取提交权限。

3.?

将库切换到”https”协议,例如:

库结构

?

?

branches/

?

?

spike/

?

?

tags/

?

?

trunk/

?

branches包含以前所有稳定的开发分支,1.6.x,1.7.x,etc…

?

spike包含实验版本和原型

?

tags包含以前所有释放版本

?

trunk为当前开发分支。

分支结构

每个开发分支都有如下所示的结构:

?

?

doc/

?

?

src/

?

?

data/

l?

doc包含用户和开发人员向导的源文件

l?

src包含Geoserver本身的Java源码

l?

data包含多种GeoServer的数据目录

?

三.快速入门

本章介绍快速搭建、运行GeoServer开发环境具体步骤。

我们假定您已经安装好所有必须的工具(内容见第二章)。

注:

本章的上的是为了尽快的让开发者搭建和运行GeoServer。

对于一些更加深入的介绍请见Maven指南和Eclipse指南。

取出源代码

由Maven构建

由Maven生成Eclipse工程文件

导入模块进Eclipse

在Eclipse里运行GeoServer

访问GeoServer首页

取出源代码由subversion库中取出源代码。

选取trunk作为最新开发源码,或者那些基本不可能经常更新的版本的稳定分支。

要么是:

svn?

co?

?

geoserver-trunk或者(稳定的1.7.x分支

svn?

co?

?

geoserver-1.7.x在这页示例里面,我们假定你取出源码到一个名为geoserver的目录,不过,最好还是把名字取得更详细一点为好。

由Maven构建修改目录到源树的根,执行以下maven构建命令:

cd?

geoserver/srcmvn?

clean?

install成功构建后会产生类似于以下的输出:

[INFO]

[INFO]

[INFO]?

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

[INFO]?

Reactor?

Summary:

[INFO]?

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

[INFO]?

GeoServer?

.............................................?

SUCCESS?

[10.271s]

[INFO]?

GeoServer?

Maven?

Plugins?

...............................?

SUCCESS?

[0.865s]

[INFO]?

Configuration?

Deployment?

PlugIn?

.......................?

SUCCESS?

[3.820s]

[INFO]?

GeoServer?

Maven?

Archetypes?

............................?

SUCCESS?

[0.054s]

[INFO]?

GeoServer?

WFS?

Output?

Format?

Archetype?

.................?

SUCCESS?

[0.390s]

[INFO]?

Core?

Platform?

Module?

..................................?

SUCCESS?

[5.270s]

[INFO]?

Data?

Module?

...........................................?

SUCCESS?

[4.521s]

[INFO]?

Open?

Web?

Service?

Module?

...............................?

SUCCESS?

[2.730s]

[INFO]?

Main?

Module?

...........................................?

SUCCESS?

[10.077s]

[INFO]?

Web?

Coverage?

Service?

Module?

...........................?

SUCCESS?

[3.785s]

[INFO]?

Web?

Coverage?

Service?

1.1.1?

Module?

.....................?

SUCCESS?

[5.254s]

[INFO]?

Validation?

Module?

.....................................?

SUCCESS?

[1.131s]

[INFO]?

Web?

Feature?

Service?

Module?

............................?

SUCCESS?

[6.695s]

[INFO]?

Web?

Feature?

Service?

Module?

............................?

SUCCESS?

[1.197s]

[INFO]?

Web?

Map?

Service?

Module?

................................?

SUCCESS?

[8.519s]

[INFO]?

Geoserver?

REST?

Support?

Code?

...........................?

SUCCESS?

[3.366s]

[INFO]?

GeoWebCache?

(GWC)?

Module?

..............................?

SUCCESS?

[0.255s]

[INFO]?

Web?

Application?

Module?

................................?

SUCCESS?

[27.386s]

[INFO]?

Community?

Space?

.......................................?

SUCCESS?

[0.312s]

[INFO]?

GeoServer?

Extensions?

..................................?

SUCCESS?

[0.071s]

[INFO]?

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

[INFO]?

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

[INFO]?

BUILD?

SUCCESSFUL

[INFO]?

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

由Maven生成Eclipse工程文件生成Eclipse使用的.project文件和.classpath文件:

mvn?

eclipse:

eclipse导入模块进Eclipse1.

启动运行Eclipse集成开发环境

2.

打开Eclipse首选项Preferences

3.

依次点击进入:

Java,BuildPath,Classpath?

Variables,点击New

 

?

4.

创建类路径变量名称”M2_REPO”,并且设置它的值为本地Maven库的位置,点击OK。

?

5.

单击OK以应用新的Eclipse首选项。

6.

在包浏览Package?

Explorer右键并单击导入Import…

?

7.

选择

已有工程导入工作区?

Existing?

Projects?

into?

Workspace,单击下一步:

?

8.

进入geoserver/src目录

9.

确保所有模块都被选取,单击完成Finish

?

在Eclipse中运行GeoServer1.

在包浏览Package?

Explorer中选择web-app模块(1.7.x或更早版本是web)

2.

点击进入包(1.7.x或更早版本是)

3.

在Start类上右键,单击Run?

as,?

Java?

Application

?

访问GeoServer首页✍

几秒后,就可通过访问到GeoServer

默认的用户admin的密码是geoserver

?

四.Maven指南

本章是使用Maven构建GeoServer的参考。

安装Maven见工具(第二章)

运行MavenMaven提供了从模块编译到生成测试覆盖报告的多种命令。

大部分maven命令可在源树的根运行,或者某个特模块。

注:

在准备由源树的根运行maven命令时,请记住要将取出的根目录变换到src目录。

在由源树的根运行一个命令时,或者从包含其它模块的目录时,命令将会为所有模块运行。

当从单个模块运行命令时,它只为这个模块运行。

构建GeoServer最常用的命令是安装命令:

mvn?

clean?

install虽然clean命令不是必须的,但我们还是推荐用上。

上面的命令做了以下的事:

编译源代码

运行单元测试

安装成果到本地Maven库

跳过测试通常在构建时跳过单元测试很有用处。

在构建命令中添加-DskipTests标志就可以只编译单元测试而不会运行测试。

mvn?

-DskipTests?

clean?

install离线构建Maven操作会自动下载待构建模块中声明的依赖库。

当处理快照(SNAPSHOT)依赖时,这就有可能会有问题。

Maven每次执行一天内的首次构建时,会尝试更新它的快照依赖。

由于GeoServer依赖GeoTools库的快照版本,这时可能会有问题。

最终导致Maven下载大量GeoTools更新模块并且急剧增加构建时间。

而如果你只是本地构建geotools,这些就显得不必要了。

这时,可以使用“离线”方式运行Maven来改进:

mvn?

-o?

clean?

install在离线模式中,Maven不会下载任何外部依赖,也不会更新任何快照依赖。

构建扩展默认情况下,扩展没有被包含在构建中。

它们得通过Profile来明确增加到构建中。

比如下面的示例就将restconfig扩展添加到构建中:

mvn?

clean?

install?

-P?

restconfig可以同时添加多个扩展同时使用:

mvn?

clean?

install?

-P?

restconfig,oracle有个特殊的名为allExtensions的Profile可以添加所有扩展:

mvn?

clean?

install?

-P?

allExtensionsProfilesEclipseMaven的Eclipse插件用于为模块生成eclipse工程:

mvn?

eclipse:

eclipse经过此操作后,这些模块就可以导入Eclipse工作区。

该插件有个很有用的功能就是可下载第三方依赖的相关源代码。

这是通过添加downloadSources标志来做的:

mvn?

-DdownloadSources?

eclipse:

eclipse警告:

当你首次启用downloadSources标志时,构建过程需要很长时间,因为它要下载GeoServer所依赖的每个库的源代码。

构建Web模块当安装好web模块后,它会通过内建的特殊配置构建。

默认情况下它注是minimal配置。

尽管如此,它也可以通过设置configId和configDirectory标志来定制任意配置。

比如:

GeoServer上的release配置构建web模块。

configId是包含的配置目录名称,configDirectory是包含的配置目录的父级目录。

configDirectory可以像刚才的一样的绝对路径,也可以是针对web模块自身的相对路径:

mvn?

clean?

install?

-DconfigId=release?

-DconfigDirectory=../../../data上面的命令与之前有同样的效果,尽管是引用了相对于web模块的路径。

该路径,../../../data,在GeoServer取出(check?

out)的代码目录结构是标准结构的情况下可用。

使用Jetty运行web模块Maven的jetty插件可用于运行嵌入了jetty容器的基于web的模块:

web模块运行,如果从其它模块运行就会失败。

上面的命令将会使用自带的数据目录来运行GeoServer。

为了使用其它的数据目录可以启用GEOSERVER_DATA_DIR标志:

mvn?

-DGEOSERVER_DATA_DIR=/path/to/datadir?

jetty:

run

五.Eclipse指南

本章是使用Eclipse开发GeoServer的参考。

导入模块

运行和调试

设置数据目录

更改Jetty默认端口

配置Jetty中JNDI资源

Eclipse首选项

代码格式化

代码模块

文本编辑器

编译器

导入模块参见Maven指南中的Eclipse部分。

运行和调试运行和调试web-app模块中类。

具体步骤见快速入门。

设置数据目录如果未设置,GeoServer默认会使用web-app模块里的minimal目录作为它的数据目录。

若要修改,执行以下步骤:

1.在Eclipse菜单中打开调试配置(Debug?

Configurations)

?

2.先把Start配置,选择Argument面板,并且填写-DGEOSERVER_DATA_DIR参数,设置数据目录为绝对路径。

?

更改Jetty默认端口如果未设置,Jetty默认会使用8080端口。

修改请按以下方式:

1.

打开上节所说的Start配置中的Argument面板。

2.

填写-Djetty.port参数,设置它到期望的端口

?

配置Jetty的JNDI资源JNDI资源如数据资源可以通过提供系统属性中名为的Jetty服务器配置文件来配置,这个可以在Start配置中的Argument面板上通过VM?

argument参数指定。

配置文件路径是相对于web-app模块根路径的,该模块是启动配置运行的地方。

例如:

Jetty服务器配置文件就配置了一个JNDI数据源:

jdbc/demo,它是一个Oracle数据库的连接池。

 

?

?

jdbc/demo?

?

?

 

claudius?

?

?

?

?

?

?

?

?

?

?

?

?

?

s3cr3t?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

20?

?

?

?

?

?

?

?

?

?

10?

?

?

?

?

?

?

?

?

?

0?

?

?

10000?

?

?

?

?

?

300000?

?

?

300000?

20?

?

true?

?

?

?

100?

?

true?

?

?

?

?

?

SELECT?

SYSDATE?

FROM?

DUAL?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

 

Jetty没有在GeoServer的WEB-INF/web.xml指定reference-ref,因此没必要修改该文件。

GeoServer?

web-app模块和数据目录没有特定于Jetty的相关信息,因此JNDI资源可以被测试在Jetty下,以便于后面在Tomcat下的开发。

也可以看看GeoServer用户手册中Tomcat中建立JNDI连接池章节。

Eclipse首选项代码格式化1.

下载文件:

2.

转到首选项中Java,Code?

Style,Formatter,点击Import…

?

3.

选择步骤1中下载的formatter.xml文件。

4.

点击Apply

?

代码模板1.

下载文件:

2.

转到首选项Java,Code?

Style,?

Formatter,点击Important…

?

3.

选择步骤1中下载的formatter.xml文件。

4.

点击Apply

文本编辑器1.

转到General,Editors,Text?

Editors

2.

选中Insert?

Space?

for?

tabs

3.

选中Show?

print?

margin,将Print?

margin?

column设置为100

4.

选中Show?

line?

numbers

5.

选中Show?

whitespace?

characters(可选)

注:

显示空白字符可帮助我们发现无意中提交不必要的空格。

?

6.

点击Apply

编译器1.

转到Java,?

Compiler,?

Building

2.

扩展开Output?

folder,并将.svn/加到Filtered?

resources列表中。

?

?

3.

点击Apply

六.编程指南OWS服务

本节介绍GeoServer中OWS服务(原文为RESTful服务,可能为笔误)如何工作。

OWS服务概览TBA

实现一个简单的OWS服务本节将通过以下场景来介绍如何给GeoServer创建一个简单的GeoServer?

OWS服务。

该服务需要提供一个能广告叫做“sayHello”的单一操作的功能(capabilities)文档。

该sayHello操作的结果是一个简单的字符串:

“Hello?

World”。

内容:

?

实现一个简单的OWS服务

建立

创建插件

试一试

建立创建插件的第一步是为它建立一个maven工程。

该工程我们称为“hello”。

1.

在本地文件系统中任意地方创建一个名为hello的新目录。

2.

给hello目录添加名为pom.xml文件。

1.

xml?

version="1.0"?

encoding="ISO-8859-1"?

>

2.?

?

?

--?

set?

parent?

pom?

to?

community?

pom?

-->

3.?

?

4.?

?

?

?

org.geoserver

5.?

?

?

?

community

6.?

?

7.?

?

?

org.geoserver

8.?

?

hello

9.?

?

jar

10.?

?

1.0

11.?

?

?

Hello?

World?

Service?

Module

12.?

?

13.?

?

?

?

14.?

?

?

?

?

?

org.geoserver

15.?

?

?

?

?

?

main

16.?

?

?

?

17.?

?

18.?

?

?

19.?

?

?

?

20.?

?

?

?

?

?

?

opengeo

21.?

?

?

?

?

?

?

opengeo

22.?

?

?

?

23.?

?

24.

复制代码

3.

在hello目录下创建Java源文件目录。

hello/

+?

pom.xml

+?

src/

+?

main/

+?

java/创建插件插件是一系列由spring?

beans实现的扩展。

实例中扩展兴趣点是一个HelloWorld的POJO。

1.

创建一个名为HelloWorld的类:

1.public?

class?

HelloWorld?

{?

?

?

2.?

?

public?

HelloWorld()?

{?

?

3.?

?

?

//?

Do?

nothing?

4.}?

?

5.?

?

public?

void?

sayHello(HttpServletRequest?

request,?

HttpServletResponse?

response)

6.?

?

?

?

?

?

?

throws?

ServletException,?

IOException?

{?

7.?

?

?

?

?

?

?

?

?

?

response.getOutputStream().write(?

"Hello?

World".getBytes()?

);

8.?

?

?

?

}

9.?

?

}

复制代码

该服务相对比较简单。

它提供了一个一个名为sayHello的方法,带有HttpServletRequest,HttpServletResponse参数。

该函数的参数列表会由自动发现。

2.

创建applicationContext.xml文件将上面的类申明为一个bean。

1.

xml?

version="1.0"?

encoding="UTF-8"?

>

2.

3.?

?

?

?

--?

Spring?

will?

reference?

the?

instance?

of?

the?

HelloWorld?

class?

?

?

?

?

?

?

?

?

?

?

by?

the?

id?

name?

"helloService"?

-->

4.?

?

?

?

id="helloService"?

class="HelloWorld">

5.?

?

?

?

?

?

?

?

6.?

?

?

?

--?

used?

to?

reference?

the?

service?

in?

the?

URL?

-->

7.?

?

?

?

?

?

?

?

index="0"?

value="hello"/>

8.?

?

?

?

?

?

?

?

?

--?

our?

actual?

service?

POJO?

defined?

previou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1