Closed anderserla closed 9 years ago
Det är avgörande hur mycket tillstånd som behöver följa med permalink. Detta kan vara till exempel kartans utbredning, verktygstatus, lagersynlighet, lagerinnehåll (ritat lager) m.m.
Lagerstatus, ritade objekt och utbredning måste följa med om den ska vara användbar. Verktygsstatus är däremot inte lika viktigt.
Egen javaservlet med koppling mot egen tabell i MySQL för lagring av status i kartan skattas till 8-16 h Utveckling av befintlig Oemap Admin Services servlet skattas till 30-60 h
Enligt @anderserla kör vi på insatsen estimerat till 8-16h.
Implementation hanteras i PR #186.
Klart. Funktionen påverkas dock av ett problem som bör ha funnits sedan ett tag tillbaks, har gjort en issue på det i #185.
Testat i utvecklingsmiljö med följande problem
Behövs permalink.extent? Bör man inte uppdatera permalink.config.extent?
Har kollat på "Texten ritas som punkter" och hittat förklaringen. För att text ska visas på rätt rätt krävs ändring i stylemap vilket görs i integration (t.ex debug.html). Jag har inte lagt in det i debug_permalink.html. Om jag minns rätt så är anledningen att det inte är med i default style för att det ger negativa effekter för hantering av punkter utan text, i alla fall var det så förut.
Vi borde ha en "DrawGeometry default stylemap" som då fungerar för såväl labels, points, paths och polygons. Har du nåt tips om hur vi bör utforma den?
Har fixat så att debug_permalink.html applicerar samma stil i PR #194
Det vore trevligt med en default stil som kan fungera för samtliga fall men tyvärr har jag ingen enkel lösning på detta som jag är säker på fungerar till samma saker som idag.
Fellogg när jag försöker använda annat databasnamn än "permalinks" Vore bra att kunna konfigurera tabellnamn också.
Databasnamn: dataSource.databaseName=oemapadmin
07:48:09.320 [http-bio-8080-exec-5] ERROR s.r.permalink.GenericExceptionMapper - Unhandled exception will be mapped to JSON and sent as a HTTP 500 reponse
org.jooq.exception.DataAccessException: SQL [insert into permalinks
.permalinks
(data
) values (?)]; Table 'permalinks.permalinks' doesn't exist
at org.jooq.impl.Utils.translate(Utils.java:1553) ~[jooq-3.5.4.jar:na]
at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:609) ~[jooq-3.5.4.jar:na]
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:355) ~[jooq-3.5.4.jar:na]
at org.jooq.impl.InsertImpl.fetchOne(InsertImpl.java:524) ~[jooq-3.5.4.jar:na]
at se.riges.permalink.resources.PermalinksResource.post(PermalinksResource.java:67) ~[PermalinksResource.class:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:203) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305) ~[jersey-server-2.17.jar:na]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [jersey-common-2.17.jar:na]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288) [jersey-server-2.17.jar:na]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110) [jersey-server-2.17.jar:na]
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:401) [jersey-container-servlet-core-2.17.jar:na]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386) [jersey-container-servlet-core-2.17.jar:na]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) [jersey-container-servlet-core-2.17.jar:na]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:222) [jersey-container-servlet-core-2.17.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [catalina.jar:7.0.57]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.57]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat7-websocket.jar:7.0.57]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.57]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [catalina.jar:7.0.57]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [catalina.jar:7.0.57]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:7.0.57]
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) [catalina.jar:7.0.57]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [catalina.jar:7.0.57]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) [catalina.jar:7.0.57]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [tomcat-coyote.jar:7.0.57]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [tomcat-coyote.jar:7.0.57]
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) [tomcat-coyote.jar:7.0.57]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_51]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote.jar:7.0.57]
at java.lang.Thread.run(Unknown Source) [na:1.7.0_51]
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'permalinks.permalinks' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:1.7.0_51]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.Util.getInstance(Util.java:372) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2145) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2081) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2066) ~[mysql-connector-java-5.1.35.jar:5.1.35]
at com.zaxxer.hikari.proxy.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:61) ~[HikariCP-java6-2.3.4.jar:na]
at com.zaxxer.hikari.proxy.PreparedStatementJavassistProxy.executeUpdate(PreparedStatementJavassistProxy.java) ~[HikariCP-java6-2.3.4.jar:na]
at org.jooq.tools.jdbc.DefaultPreparedStatement.executeUpdate(DefaultPreparedStatement.java:88) ~[jooq-3.5.4.jar:na]
at org.jooq.impl.AbstractStoreQuery.execute(AbstractStoreQuery.java:378) ~[jooq-3.5.4.jar:na]
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:341) ~[jooq-3.5.4.jar:na]
... 47 common frames omitted
Ok nu förstår jag varför detta händer. Jag använder en teknologi (jOOQ) som binder sig mot databasens schema och tydligen ingår databasnamnet i bindningen i alla fall när det gäller MySQL. Detta gör att det inte är helt trivialt att göra varken databasnamn eller tabellnamn konfigurerbart.
Skapar du repo så att det går att jobba vidare med koden när det krävs?
Closes this one and moves the rest to Sundsvallskommun/OpenEMap-Permalink-Services#1
Error on long configs. Too small database field @sweco-sebhar ?
Probably. MySQL documentation on TEXT fields does not make it easy to figure out what the maximum size is though or what to do about it. I have only limited experience with MySQL and can't think of single good reason to use it. :)
BTW, Sundsvallskommun/OpenEMap-Permalink-Services does not seem to be accessible, perhaps you made it private?
TEXT is 2 raised to 16 = 65536 bytes Changed it to MEDIUMTEXT 2 raised to 24 ~ 16 Mb
Testa om den inbyggda permalinkfunktionen i GeoExt funkar, annars diskuterar vi vidare hur vi kan lösa det.