GeoServer 配置与使用 WPS 服务教程
要在 GeoServer 中配置并使用 WPS 服务,先安装与当前版本精确匹配的 WPS 扩展,重启后服务能力列表会出现 WPS。接着在管理界面调整执行超时、并行数、资源目录与过程级安全策略,再用 Demos 里的 WPS Request Builder 或标准 GetCapabilities、DescribeProcess、Execute 请求调用过程。输入可直接引用已发布的图层,输出也可存回数据目录成为新图层,从而把 GeoServer 变成可读写的远程地理处理引擎。

安装与当前版本匹配的 WPS 扩展
WPS 不是核心默认组件,必须以扩展方式安装,且插件版本必须与 GeoServer 完全一致,否则启动失败或过程列表异常。截至 2026 年 11 月,Stable 推荐生产使用 3.0.2(2026 年 10 月 19 日发布),Maintenance 为 2.28.6(同日发布);两者均要求最低 Java 17 LTS,并支持 Java 21。容器方面,3.0 系列建议 Tomcat 11.0.x 或 Jetty 12.1。
- 登录 Web 管理界面,打开 About & Status → About GeoServer,记下精确 Build Information 版本号。
- 前往 GeoServer 官方下载页,选择对应版本的 Archive 标签,在 Extensions(OGC Services 或 Other)下载 wps-plugin ZIP。
- 停止 GeoServer 服务,将 ZIP 内全部 .jar 直接解压到安装目录的 WEB-INF/lib(不要建子目录,也不要覆盖已有同名核心 jar)。
- 重启服务。验证:Service Capabilities 列出现 WPS 链接,或 Modules 页能看到 WPS 模块;也可直接访问 GetCapabilities。
详细步骤与注意事项以 官方 WPS 安装文档 为准。若日志出现依赖冲突(如 Jackson),检查是否误替换了已有 jar。

在管理界面配置执行、资源与安全
安装成功后,WPS 页面可设置服务元数据、执行行为与磁盘资源;Security 下还有独立的 WPS Security 页。这些配置直接决定生产环境是否稳定、是否被滥用。
Execution settings 常用项:
- Connection timeout:远程 HTTP 输入的超时秒数。
- Maximum synchronous executions run parallel:同步过程并行上限,超出排队。
- Maximum execution time for synchronous requests:同步最长执行时间,建议设为较短值(如 60 秒),超时自动 dismiss。
Resource settings:
- Resource expiration timeout:异步结果在磁盘保留的秒数。
- Resource storage directory:默认 data_dir/temp/wps,可改到独立磁盘。
- External output directory:可选外部存储路径,需自行管理清理。
安全方面,可按过程组或单个过程启用/禁用,也可按角色(分号分隔)限制访问。角色列表为空表示所有人可用(除非整体禁用)。访问模式默认 HIDE(隐藏不可用过程),也可选 CHALLENGE 或 MIXED。输入大小有全局默认限制,带 * 标记的过程可单独覆盖。注意 WFS 的特征数量限制同样作用于 WPS 输入,即使最终结果很少,也可能静默截断。
About & Status 下的过程状态页可查看运行中与近期完成任务(同步/异步、QUEUED、RUNNING、FAILED、SUCCESS、DISMISSING 等阶段),便于排查。
用 Request Builder 调用过程并理解标准操作
官方推荐先用 Web 管理界面 Demos → WPS Request Builder 熟悉流程:选择过程、填写参数(Text、Reference、Subprocess 或直接选 GeoServer 图层)、生成 Execute 的 XML POST,再一键测试。确认无误后再把请求集成到客户端或脚本。
WPS 1.0.0 标准定义三种核心操作,GeoServer 另提供两种厂商扩展:
| 操作 | 作用 | 常用方式 |
|---|---|---|
| GetCapabilities | 获取服务元数据与可用过程列表 | GET,示例:…/ows?service=WPS&version=1.0.0&request=GetCapabilities |
| DescribeProcess | 获取指定过程输入输出详细描述 | GET/POST,identifier 可逗号分隔多个 |
| Execute | 执行过程并指定输入输出 | 通常 POST XML,也支持 GET;可同步或异步 |
| Dismiss | 取消正在执行的任务 | 厂商扩展 |
| GetExecutions | 查询当前执行状态列表 | 厂商扩展 |
过程按主题前缀分类,完整列表以 Capabilities 或 Request Builder 为准:
- geo: 几何过程
- ras: 栅格过程
- vec: 矢量过程
- gs: GeoServer 特定过程(如 aggregation、bounds、reprojection,内部可连 WFS/WCS)
核心输入输出格式(PPIO)包括:几何(GML 2/3、GeoJSON、WKT)、要素集合(GML、GeoJSON、Zipped shapefile、KML)、栅格(GeoTIFF、PNG、JPEG)。Execute 支持过程链式(subprocess),异步时返回状态链接,可监控或 dismiss;结果也可直接存为新图层。
常见问题
安装后服务能力里没有 WPS,或启动报错?
绝大多数是版本不匹配或 jar 冲突。确认插件与 GeoServer Build Information 完全一致,解压时不要覆盖核心 jar,查看日志定位缺失依赖,然后重启验证 Modules 与 Capabilities。
执行时报 “Failed to retrieve value for input”?
通常是输入类型或格式不符,例如把 FeatureCollection 传给期望单个 Geometry 的过程。先用 DescribeProcess 核对 identifier 要求的类型与 mime,再用 Request Builder 逐步测试 Text/Reference/图层引用。
代理环境下 Request Builder 出现 403?
多为 CSRF Origin 校验失败。可配置 GEOSERVER_CSRF_WHITELIST 加入代理域名,或按官方安全文档临时调整 CSRF 策略(生产环境优先白名单)。
过程返回结果不完整却没有报错?
检查 WFS 管理页的特征数量限制,该限制同样作用于 WPS 输入。适当提高限制或缩小输入范围,并确认过程本身未开启更严的输入大小限制。
配置与使用 GeoServer WPS 的核心是“版本精确匹配 + 先用 Request Builder 验证 + 合理设置超时与安全”。建议生产环境固定 Stable 分支并定期对照官方发布说明升级扩展;日常调用优先引用已有图层而非上传大数据,既能减少网络开销,也能把结果直接写回数据目录复用。