geoserver ——数据商店

数据商店

应用程序架构映射文件要求您在该sourceDataStores部分中指定数据源。对于GeoServer简单功能,这些功能是使用Web界面配置的,但由于app-schema缺少Web配置界面,因此必须通过编辑映射文件来配置数据存储。

许多配置选项可以通过使用Property Interpolation进行外部化。

DataStore元素

一个DataStore配置由

  • an id,这是一个不透明的标识符,用于引用映射文件中其他位置的数据存储,以及
  • 一个或多个Parameter元件,其每个都包含namevalue的一个参数,和用于配置数据存储。

DataStore元素的轮廓:

< DataStore > 
     < id > datastore </ id > 
     < parameters > 
         < Parameter > 
             < name > ... </ name > 
             < value > ... </ value > 
         </ Parameter > 
         ... 
     </ parameters > 
</ DataStore >

参数顺序不重要。

数据库选项

PostGIS,Oracle和ArcSDE等数据库共享一些常见或类似的配置选项。

name 含义 value 例子
dbtype 数据库类型 postgisngOraclearcsde
host 数据库服务器的主机名或IP地址 database.example.org, 192.168.3.12
port 数据库服务器上的TCP端口 如果省略则默认:1521(Oracle),5432(PostGIS),5151(ArcSDE)
database PostGIS / Oracle数据库  
instance ArcSDE实例  
schema 数据库架构  
user 用于登录数据库服务器的用户名  
passwd 用于登录数据库服务器的密码  
Expose primary keys 主键可用于映射的列 默认false设置为true在映射中使用主键列

PostGIS的

将参数dbtype设置postgisng为使用与GeoServer 2.0及更高版本捆绑在一起的PostGIS NG(新一代)驱动程序。

例:

< DataStore > 
    < id > datastore </ id > 
    < parameters > 
        < Parameter > 
            < name > dbtype </ name > 
            < value > postgisng </ value > 
        </ Parameter > 
        < Parameter > 
            < name > host </ name > 
            < value > postgresql 例子> 
        </ Parameter > 
        < Parameter > 
            < name > port </ name > 
            < value > 5432 </ value > 
        </ Parameter > 
        < Parameter > 
            < name > database </ name > 
            < value > test </ value > 
        </ parameter > 
        < 参数> 
            < 名称>用户</ name> 
            < value > test </ value > 
        </ Parameter > 
        < Parameter > 
            < name > passwd </ name > 
            < value > test </ value > 
        </ Parameter > 
    </ parameters > 
</ DataStore >

注意

 

PostGIS支持包含在主GeoServer包中,因此不需要单独的插件。

扫描二维码关注公众号,回复: 2581885 查看本文章

甲骨文

将参数dbtype设置Oracle为使用与GeoServer 2.0及更高版本兼容的Oracle Spatial NG(新一代)驱动程序。

例:

< DataStore > 
    < id > datastore </ id > 
    < parameters > 
        < Parameter > 
            < name > dbtype </ name > 
            < value > Oracle </ value > 
        </ Parameter > 
        < Parameter > 
            < name > host </ name > 
            < value > oracle 例子组织<> 
        </ Parameter > 
        < Parameter > 
            < name > port </ name > 
            < value > 1521 </ value > 
        </ Parameter > 
        < Parameter > 
            < name > database </ name > 
            < value > demodb </ value > 
        </ Parameter > 
        < 参数> 
            < 名称>用户</ name> 
            < value > orauser </ value > 
        </ Parameter > 
        < Parameter > 
            < name > passwd </ name > 
            < value > s3cr3t </ value > 
        </ Parameter > 
    </ parameters > 
</ DataStore >

注意

 

您必须安装Oracle插件才能连接到Oracle Spatial数据库。

ArcSDE的

此示例连接到ArcSDE数据库:

< DataStore > 
    < id > datastore </ id > 
    < parameters > 
        < Parameter > 
            < name > dbtype </ name > 
            < value > arcsde </ value > 
        </ Parameter > 
        < Parameter > 
            < name > server </ name > 
            < value > arcsde 例子组织<> 
        </ Parameter > 
        < Parameter > 
            < name > port </ name > 
            < value > 5151 </ value > 
        </ Parameter > 
        < Parameter > 
            < name > instance </ name > 
            < value > sde </ value > 
        </ parameter > 
        < 参数> 
            < 名称>用户</ name> 
            < value > demo </ value > 
        </ Parameter > 
        < Parameter > 
            < name > password </ name > 
            < value > s3cr3t </ value > 
        </ Parameter > 
        < Parameter > 
            < name > datastore allowNonSpatialTables </ name > 
            < value > true </ value > 
        <> 
    </ parameters > 
</ DataStore >

非空间表的使用有助于传递使用非空间属性的应用程序模式。

注意

 

您必须安装ArcSDE插件才能连接到ArcSDE数据库。

Shape文件

Shapefile数据源由参数的存在标识,参数url的值应该是.shp文件的文件URL。

在此示例中,仅url需要参数。其他是可选的:

< DataStore > 
    < id > shapefile </ id > 
    < parameters > 
        < Parameter > 
            < name > url </ name > 
            < value > file :/ D :/ Workspace / shapefiles / VerdeRiverBuffer shp </ value > 
        </ Parameter > 
        < Parameter > 
            < name > memory 映射 缓冲区</ name > 
            < > false </ value > 
        </ 参数> 
        < 参数> 
            < 名称> 创建 空间 索引</ name > 
            < > true </ value > 
        </ 参数> 
        < 参数> 
            < 名称> 字符集</ name > 
            < value >ISO - 8859- 1 </ value > 
        </ Parameter > 
    </ parameters > 
</ DataStore >

注意

 

url这种情况下转换为URL标记一个Windows文件系统路径的一个例子。

注意

 

Shapefile支持包含在主GeoServer包中,因此不需要单独的插件。

属性文件

属性文件通过指定配置directory是一个file:URI。

  • 如果目录以file:./它开头,则它相对于映射文件目录。(这是一个无效的URI,但它有效。)

例如,以下数据存储用于访问与映射文件位于同一目录中的属性文件:

< DataStore > 
    < id > propertyfile </ id > 
    < parameters > 
        < Parameter > 
            < name > directory </ name > 
            < value > file :./ </ value > 
        </ Parameter > 
    </ parameters > 
</ DataStore >

属性文件数据存储包含存储在目录中的.properties文件中的所有要素类型。例如,如果目录包含River.properties和station.properties,数据存储将能够为他们服务的功能类型Riverstation。其他文件扩展名将被忽略。

注意

 

属性文件支持包含在主GeoServer包中,因此不需要单独的插件。

JNDI 

jndiReferenceName使用a 定义JDBC数据存储允许您使用servlet容器提供的连接池。这允许详细配置连接池参数和共享数据源之间的连接,甚至是servlet之间的连接。

要使用JNDI连接提供程序:

  1. 指定dbtype参数以指示数据库类型。这些值与上面的非JNDI示例相同。
  2. jndiReferenceName在servlet容器中为您设置。支持缩写形式jdbc/oracle(如Tomcat)和规范形式java:comp/env/jdbc/oracle

此示例使用JNDI获取Oracle连接:

< DataStore > 
    < id > datastore </ id > 
    < parameters > 
        < Parameter > 
            < name > dbtype </ name > 
            < value > Oracle </ value > 
        </ Parameter > 
        < Parameter > 
            < name > jndiReferenceName </ name > 
            < value > jdbc / oracle </ value >
        </ Parameter > 
    </ parameters > 
</ DataStore >

您的servlet容器我要求您resource-ref在最后添加一个部分geoserver/WEB-INF/web.xml。(Tomcat需要这个,Jetty没有。)例如:

< resource - ref > 
    < description > Oracle  Spatial  数据源</ description > 
    < res - ref - name > jdbc / oracle </ res - ref - name > 
    < res - type > javax sql DataSource </ res - type > 
    < res - auth > Container </res - auth > 
</ resource - ref >

以下是Tomcat 6上下文的示例,/etc/tomcat6/server.xml其中包括Oracle连接池:

< 背景
    路径= “/的GeoServer” 
    的docBase = “/ USR /本地/ GeoServer的” 
    crossContext = “假” 
    重新加载= “假” > 
    < 资源
        名称= “JDBC / ORACLE” 
        AUTH = “容器” 
        类型= “javax.sql中。 DataSource“ 
        url = ”jdbc:oracle:thin:@YOUR_DATABASE_HOSTNAME:1521:YOUR_DATABASE_NAME“ 
        driverClassName = ”oracle.jdbc.driver.OracleDriver“ 
        username = ”YOUR_DATABASE_USERNAME“
        password = “YOUR_DATABASE_PASSWORD”
        maxActive = “20” 
        maxIdle = “10” 
        minIdle = “0” 
        maxWait = “10000” 
        minEvictableIdleTimeMillis = “300000” 
        timeBetweenEvictionRunsMillis = “300000” 
        numTestsPerEvictionRun = “20” 
        poolPreparedStatements = “true” 
        maxOpenPreparedStatements = “100” 
        testOnBorrow = “true” 
        validationQuery = “SELECT SYSDATE FROM DUAL”  /> 
</ Context >

防火墙超时可以静默切断与数据库的空闲连接,并导致GeoServer挂起。如果GeoServer与数据库之间存在防火墙,则配置为在防火墙可以丢弃空闲连接之前关闭空闲连接的连接池将阻止GeoServer挂起。此JNDI连接池配置为在5到10分钟后关闭空闲连接。

另请参阅使用Tomcat设置JNDI连接池

暴露主键

默认情况下,GeoServer使用主键隐藏数据库列的存在。要使此类列可用于app-schema映射文件,请将data store参数设置为:Expose primary keystrue

< Parameter > 
    < name > 显示 主 键</ name > 
   < value > true </ value > 
</ Parameter >

众所周知,这可以与PostGIS,Oracle和JNDI数据存储一起使用。

MongoDB的

MongoDB数据库的数据存储配置如下所示:

<sourceDataStores> 
    <Da​​taStore> 
        <id> data_source </ id> 
        <parameters> 
            <Parameter> 
                <name> data_store </ name> 
                <value> MONGO_DB_URL </ value> 
            </ Parameter> 
            <Parameter> 
                <name> namespace </ name > 
                <value> NAME_SPACE </ value> 
            </ Parameter> 
            <Parameter> 
                <name> schema_store </ name> 
                <value> SCHEMA_STORE </ value> 
            </ Parameter> 
            <Parameter> 
                <name> data_store_type </ name> 
                <value> complex </ value> 
            </ Parameter>
        </ parameters> 
    </ DataStore> 
</ sourceDataStores>

查看MongoDB教程,了解有关如何将MongoDB与app-schema一起使用的更详细说明。

注意

 

您必须安装MongoDB插件才能连接到MongoDB数据库。

猜你喜欢

转载自blog.csdn.net/qq_36178899/article/details/81351989