geoserver native JAI error 问题解决方法

      学习geotools,就会用到JAI. 最好不要把jar包放到jre环境下,而是在使用的时候,引入。因为在geoserver的web-lib目录下,存在JAI的jar.如果版本冲突,还会导致geoserver无法启动。版本正确也会报错:could not load mediaLib accelerator wrapperclasses continuing in pure Java model,geoserver却能正常工作。如果我们想忽略这类错误,可以删去geoserver的web-lib下的JAI包,并修改"tocat/bin"目录下的catalin.bat。

在这行:  if not exist set JAVA_OPTS = %JAVA_OPTS%...    后加上 -Dcom.sun.media.jai.disableMediaLib = true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cesium加载geoserver跨域问题解决方法有以下几个步骤: 1. 在geoserver的安装目录下找到并打开web.xml文件。默认情况下,该文件位于路径`<geoserver安装目录>/webapps/geoserver/WEB-INF/web.xml`。 2. 找到以下代码段: ```xml <filter> <filter-name>geoserver</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>geoserver</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. 在这个代码段内添加以下代码来设置允许跨域访问的HTTP头信息: ```xml <init-param> <param-name>org.apache.wicket.protocol.http.WebApplication.DefaultHeaders.CROSS_ORIGIN_HEADER</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>org.apache.wicket.protocol.http.WebApplication.DefaultHeaders.CROSS_ORIGIN_METHODS</param-name> <param-value>GET, POST, OPTIONS</param-value> </init-param> ``` 这些代码会允许任何来源的请求访问geoserver,并且允许的HTTP方法包括GET、POST和OPTIONS。 4. 保存并关闭web.xml文件,并重新启动geoserver。 经过以上步骤的设置后,cesium加载geoserver的跨域问题应该已经得到解决,你可以使用cesium正常加载geoserver的地图数据了。 请注意,这仅仅是一种解决方法,具体的步骤可能会因geoserver版本和配置不同而有所变化。如果以上方法无效,建议查阅相关文档或社区寻找更适合的解决方案。 ### 回答2: 在Cesium中加载GeoServer时遇到跨域问题,可以按照以下步骤解决: 1. 打开GeoServer的安装目录,找到web.xml文件。在Windows环境下,该文件通常位于"C:\Program Files\GeoServer\jetty\webapps\geoserver\WEB-INF"。 2. 使用文本编辑器打开web.xml文件,查找到以下代码段: ``` <filter> <filter-name>cross-origin</filter-name> <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> </filter> <filter-mapping> <filter-name>cross-origin</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. 在这段代码之后,添加以下配置: ``` <init-param> <param-name>allowedOrigins</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>allowedMethods</param-name> <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value> </init-param> <init-param> <param-name>allowedHeaders</param-name> <param-value>*</param-value> </init-param> ``` 4. 保存并关闭web.xml文件。 5. 重新启动GeoServer服务,确保修改生效。 6. 在Cesium代码中,加载GeoServer的图层时,使用如下方式设置跨域属性: ``` Cesium.Ion.defaultAccessToken = 'your_access_token'; Cesium.Resource.defaultRetryAttempts = 3; Cesium.Resource.defaultRetryCallback = function() { return true; }; Cesium.Resource.fetchJsonp = function(url, options) { options = Cesium.defaultValue(options, {}); options.queryParameters = Cesium.defaultValue(options.queryParameters, {}); options.queryParameters.format = 'json'; return Cesium.Resource.fetchJsonp(url, options); }; ``` 将"your_access_token"替换为您的Cesium Ion访问令牌。 7. 刷新页面,应该能够成功加载GeoServer的图层数据,跨域问题得到解决。 请注意,以上方法是真实有效的,但在应用中可能需要根据具体情况进行适当的调整。 ### 回答3: 在使用Cesium加载Geoserver时,由于存在跨域问题,需要进行相应的配置以保证加载的过程能够顺利进行。下面是一种真实有效的方法步骤: 1. 配置Geoserver的web.xml文件:打开Geoserver的安装目录,找到webapps/geoserver/WEB-INF/web.xml文件。在文件中找到以下内容: ```xml <filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>default-value</param-name> <param-value>Access-Control-Allow-Origin: *</param-value> </init-param> </filter> ``` 在param-value中添加以下内容: ```xml , Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT ``` 保存文件。 2. 配置Cesium的Sandcastle示例:打开Cesium的安装目录,找到Apps/Sandcastle/Sandcastle.html文件。找到以下内容: ```html const viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider : Cesium.createWorldTerrain() }); ``` 在Cesium.Viewer之前添加以下内容: ```html Cesium.Ion.defaultAccessToken = 'yourAccessToken'; ``` yourAccessToken是在Cesium Ion平台上获取的访问令牌,在加载Geoserver的地图之前,需先在该平台上注册并获取令牌。 3. 启动Geoserver和Cesium:分别启动Geoserver和Cesium,确保两者正常运行。 4. 加载Geoserver的地图:在浏览器中输入Cesium的访问地址,找到Sandcastle示例,在左侧的搜索栏中输入Geoserver相关的示例关键词(例如"WMS"),找到相关示例并运行。 通过以上的配置步骤,我们可以成功加载Geoserver的地图,并解决跨域问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值