Viac

Publikovanie zobrazení zo servera Microsoft SQL Server v serveri GeoServer

Publikovanie zobrazení zo servera Microsoft SQL Server v serveri GeoServer


Vyvíjam aplikáciu s OpenLayers 3 a GeoServer na obsluhu WMS vrstiev. Vrstvy sú publikované zo servera Microsoft SQL Server v GeoServeri.

Na serveri MSSQL existujú dve databázy, prvá databáza pozostáva zo všetkých priestorových a nepriestorových tabuliek a zobrazení, ktoré používa iná webová aplikácia na zobrazenie a úpravu údajov o atribútoch každého priestorového majetku.

Druhá databáza môže obsahovať niekoľko priestorových tabuliek (vrstiev), ktoré je možné priamo publikovať z GeoServeru, ale existuje niekoľko zobrazení, ktoré boli vytvorené z prvej databázy. Takže ak v tejto webovej aplikácii dôjde k aktualizácii aktív, bude to mať vplyv na atribúty zobrazení v druhej databáze.

Na svoju aplikáciu používam druhú databázu. Tabuľky, ktoré boli nahrané priamo z shapefile, môžem ľahko publikovať na server MSSQL Server. Problém je v tom, že pri publikovaní zobrazení v GeoServeri to vyvoláva výnimku.

Výnimka z denníka GeoServeru

2015-10-15 16: 49: 05,699 CHYBA [wicket.RequestCycle]-java.io.IOException: Vyskytla sa chyba pri výpočte hraníc pre spatial_view java.lang.RuntimeException: java.io.IOException: Pri výpočte hraníc pre spatial_view pri org. geotools.jdbc.JDBCFeatureSource.getBoundsInternal (JDBCFeatureSource.java:540) na org.geotools.data.store.ContentFeatureSource.getBounds (ContentFeatureSource.java:428) na org.geotools.data.store.ContentFeatureSource 364) na org.vfny.geoserver.global.GeoServerFeatureSource.getBounds (GeoServerFeatureSource.java:660) na org.geoserver.catalog.CatalogBuilder.getNativeBounds (CatalogBuilder.java:561) na org.geoserver.uilder.catalog.Catalog .java: 543) na org.geoserver.web.data.resource.BasicResourceConfig $ 2.onClick (BasicResourceConfig.java:155) na org.geoserver.web.wicket.GeoServerAjaxFormLink.onSubmit (GeoServerAjaxFormLink.j .wicket.ajax.markup.html.form.AjaxSubmitLink $ 1. na odoslaní (Aj axSubmitLink.java:68) na org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent (AjaxFormSubmitBehavior.java:143) na org.apache.wicket.ajax.AjaxEventBehavior.respond (AjaxEventBehavior.java:177) na org .wicket.ajax.AbstractDefaultAjaxBehavior.onRequest (AbstractDefaultAjaxBehavior.java:300) na org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents (BehaviorRequestTareget.quest.avi.::9) .processEvents (AbstractRequestCycleProcessor.java:92) na org.apache.wicket.RequestCycle.processEventsAndRespond (RequestCycle.java:1250) na org.apache.wicket.RequestCycle.step (RequestCycle.java:1329 )et na org.apache RequestCycle.steps (RequestCycle.java:1436) na org.apache.wicket.RequestCycle.request (RequestCycle.java:545) na org.apache.wicket.protocol.http.WicketFilter.doGet (WicketFilter.java:484) na org .apache.wicket.protocol.http.WicketServlet.doPost (WicketServlet.java:160) na javax.servlet.http.HttpServlet.s služba (HttpServlet.java:648) na javax.servlet.http.HttpServlet.service (HttpServlet.java:729) na org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal (ServletWrappingCava1 .web.servlet.mvc.AbstractController.handleRequest (AbstractController.java:153) na org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle (SimpleControllerHandlerAdapter.java:48) na org.springframeletdataSpatlet.servlet (DispatcherServlet.java:923) na org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:852) na org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:882) web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:789) na javax.servlet.http.HttpServlet.service (HttpServlet.java:648) na javax.servlet.http.HttpServlet.service (HttpServlet.java:729) na org .apache.catalina.core.ApplicationFilterChain.internalDoFilter (aplikácia tionFilterChain.java:291) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) na org.apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.geoserver.filters.ThreadLocalsCleanilFilter.org ) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.geoserver.filters.SpringDilleg doFilter (SpringDelegatingFilter.java:75) na org.geoserver.wms.animate.AnimatorFilter.doFilter (AnimatorFilter.java:71) na org.geoserver.filters.SpringDelegatingFilter $ Chain.doFilter (SpringDelegatingFilter.java:71) na org. .filters.SpringDelegatingFilter.doFilter ( SpringDelegatingFilter.java:46) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206). Org.geos .AdvancedDispatchFilter.doFilter (AdvancedDispatchFilter.java:50) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChava.doFilter (Application org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:311) na org.geoserver.security.filter.GeoServerCompositeFilter $ NestedFilterChain.doFilava.Forter access.intercept.FilterSecurityInterceptor.invoke (FilterSecurityInterceptor.java:116) na org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:83) na org.geoserver.s ecurity.filter.GeoServerCompositeFilter $ NestedFilterChain.doFilter (GeoServerCompositeFilter.java:73) na org.geoserver.security.filter.GeoServerCompositeFilter.doFilter FilterChainProxy.java:323) na org.geoserver.security.filter.GeoServerCompositeFilter $ NestedFilterChain.doFilter (GeoServerCompositeFilter.java:69) na org.springframework.security.web.access.ExceptionTranslation .geoserver.security.filter.GeoServerCompositeFilter $ NestedFilterChain.doFilter (GeoServerCompositeFilter.java:73) na org.geoserver.security.filter.GeoServerCompositeFilter.doFilter:92 .doFilter (FilterChainProxy.java:323) na org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter (GeoServerAnonymousAuthenticationFilter.java:54 ) na org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:323) na org.geoserver.security.filter.GeoServerCompositeFilter $ NestedFilterChain.doFilter: GeoSer web.authentication.bstract java: 92) na org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter (GeoServerUserNamePasswordAuthenticationFilter.java:116) na org.springframework.security.web.FilterChilProxy .filter.GeoServerCompositeFilter $ NestedFilterChain.doFilter (GeoServerCompositeFilter.java:69) na org.springframework.security. web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter (RememberMeAuthenticationFilter.java:146) na org.geoserver.security.filter.GeoServerComter.File. GeoServerCompositeFilter.java:92) na org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:323) na org.geoserver.security.filter.GeoServerCompositeFilter $ N .springframework.security.web.context.SecurityContextPersistenceFilter.doFilter (SecurityContextPersistenceFilter.java:87) na org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter $ 1.doFilter (GeoServer) NestedFilterChain.doFilter (GeoServerCompositeFilter.java:73) na org.geoserver.security.filter.GeoServerCompositeFilter. doFilter (GeoServerCompositeFilter.java:92) na org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:323) na org.springframework.security.web.FilterChilPro .geoserver.security.GeoServerSecurityFilterChainProxy.doFilter (GeoServerSecurityFilterChainProxy.java:135) na org.springframework.web.filter.de : 259) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.geoserver.filters.Log. doFilter (LoggingFilter.java:83) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChai n.java:206) na org.geoserver.filters.GZIPFilter.doFilter (GZIPFilter.java:42) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:239) na org.apache.catalina.core .ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.geoserver.filters.SessionDebugFilter.doFilter (SessionDebugFilter.java:48) na org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (Application apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.geoserver.filters.FlushSafeFilter.doFilter (FlushSafeFilter.java:44) na org.apache.catalina.core.ApplicationFilterFilterChil.in 239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter (SetCharacterEncodingFilter.java:109) na org.apache.al .internalDoFilter (ApplicationFil terChain.java:239) na org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) na org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:219) na org.apache.catalina .core.StandardContextValve.invoke (StandardContextValve.java:106) na org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:502) na org.apache.catalina.core.StandardHostValve.invoke (StandardHostVal ) na org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) na org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:617) na org.apache.catalina.alveVine Standard vyvolať (StandardEngineValve.java:88) na org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:518) na org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1091) na org.apache .coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:668) na org.apache .tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1521) na org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run (NioEndpoint.java:1478) na java.util.concurrent.ThreadPoolExecutor .runWorker (Neznámy zdroj) na java.util.concurrent.ThreadPoolExecutor $ Worker.run (Neznámy zdroj) na org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) na java.lang. Thread.run (neznámy zdroj) Spôsobené: java.io.IOException: Pri výpočte hraníc pre spatial_view na org.geotools.jdbc.JDBCDataStore.getBounds (JDBCDataStore.java:1309) na org.geotools.jdbc.JDBCFeatureSource.get došlo k chybe JDBCFeatureSource.java:533)… 115 ďalších Spôsobené: com.microsoft.sqlserver.jdbc.SQLServerException: Nedá sa vyriešiť konflikt porovnávania medzi „Latin1_General_CI_AS“ a „SQL_Latin1_General_CP1_CI_AS“ v operátore pridávania, ktorý sa vyskytuje v stĺpci príkazu SELECT 1. na serveri com.microsoft.sqls .jdbc.SQLServerException.makeFromDatabaseError (SQLServerException.java:216) na com.micr osoft.sqlserver.jdbc.SQLServerStatement.getNextResult (SQLServerStatement.java:1515) na adrese com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement (SQLServerStatement.java:792) na adrese com.microsoft.bq SQLServerStatement.java:689) na com.microsoft.sqlserver.jdbc.TDSCommand.execute (IOBuffer.java:5696) na com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand (SQLServerConnection.java:1715) na .jdbc.SQLServerStatement.executeCommand (SQLServerStatement.java:180) na com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement (SQLServerStatement.java:155) na com.microsoft.sqlserver.jdbc.SQL ) na org.apache.commons.dbcp.DelegatingStatement.executeQuery (DelegatingStatement.java:208) na org.apache.commons.dbcp.DelegatingStatement.executeQuery (DelegatingStatement.java:208) na org.geotools.jdbc.JDBCDataStor JDBCDataStore.java:1285)… 116 viac 2 015-10-15 16: 49: 05,708 INFO [geoserver.filters]-0: 0: 0: 0: 0: 0: 0: 1 "POST/geoserver/web/? Wicket: interface =: 8: resource: tabs : panel: theList: 0: content: referencingForm: computeLatLon :: IActivePageBehaviorListener: 0: & wicket: ignoreIfNotActive = true & random = 0.15636781346984208 "takes 33ms 2015-10-15 16: 49: 05,714 INFO [geoserver.filters]-0: 0: 0 : 0: 0: 0: 0: 1 "GET/geoserver/web/? Wicket: interface =: 9 ::::" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, podobne ako Gecko) Chrome/45.0.2454.101 Safari/537.36 "" http: // localhost: 8080/geoserver/web/? Wicket: interface =: 8 :::: "" "" 2015- 10-15 16: 49: 05,734 INFO [geoserver.filters] - 0: 0: 0: 0: 0: 0: 0: 1 "GET/geoserver/web/? Wicket: interface =: 9 ::::" trvalo 20 ms

The geometry_columns tabuľka v druhej databáze (ktorú používam) má uložený názov stĺpca geometrie ako ogr_geometry ale zobrazenia majú názov stĺpca geometrie ako SP_GEOMETRY

Je to problém, ak áno, ako ho prekonať?

alebo ako zverejniť tieto zobrazenia servera MSSQL pomocou GeoServer 2.7.2?


Potvrdzujem tento problém.

Ako riešenie navrhujem vytvoriť vrstvu s hranicami SRS, nie takú, ktorá sa počíta z údajov. (Chyba pochádza z dotazu bbox na údaje).


Zo sledovania zásobníka sa zdá, že máte nejaké problémy s textovými poľami vo vašich zobrazeniach: „Nedá sa vyriešiť konflikt porovnávania medzi“ Latin1_General_CI_AS “a„ SQL_Latin1_General_CP1_CI_AS “


Pozri si video: Geoserver on AWS EC2Tutorial