If I remember correctly the way it was done was that if you specify the
"raw=true" parameter, then it doesn't attempt any conversion.


http://docs.geoserver.org/stable/en/user/rest/api/styles.html#rest-api-styles-raw

This was I believe a result of developer feedback when the feature of
supporting different languages was implemented. I'm not tied to it any way.

On Thu, Dec 11, 2014 at 10:31 AM, Jody Garnett <[email protected]>
wrote:

> Yep, looks like a bug. I also found some issues when copying a style
> (either via the UI or via REST) and being unable to correct (the now
> incorrect) format via the UI (which is a read-only field).
>
> --
> Jody Garnett
>
> On 11 December 2014 at 10:21, Andrea Aime <[email protected]>
> wrote:
>
>> Hi,
>> one of the new features in the 2.6.0 release is the ability to handle
>> styles
>> in more than one language.
>>
>> I've seen it work with CSS on the web UI, but I've just tried with REST
>> and
>> I cannot seem to make it work, from what I can see it looks lilke a bug.
>>
>> Here is what I've done. First, create the style xml, telling GeoServer
>> I'm going
>> to upload a css:
>>
>> > curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d
>> "<style><name>test_css</name><filename>test_css.css</filename><format>css</format></style>"
>>  http://localhost:8080/geoserver/rest/styles
>> * Hostname was NOT found in DNS cache
>> *   Trying 127.0.0.1...
>> * Connected to localhost (127.0.0.1) port 8080 (#0)
>> * Server auth using Basic with user 'admin'
>> > POST /geoserver/rest/styles HTTP/1.1
>> > Authorization: Basic YWRtaW46Z2Vvc2VydmVy
>> > User-Agent: curl/7.35.0
>> > Host: localhost:8080
>> > Accept: */*
>> > Content-type: text/xml
>> > Content-Length: 89
>> >
>> * upload completely sent off: 89 out of 89 bytes
>> < HTTP/1.1 *201 Created*
>> < Date: Thu, 11 Dec 2014 18:07:58 GMT
>> < Location: http://localhost:8080/geoserver/rest/styles/test_css
>> * Server Noelios-Restlet-Engine/1.0..8 is not blacklisted
>> < Server: Noelios-Restlet-Engine/1.0..8
>> < Transfer-Encoding: chunked
>>
>> And then I'm going to upload the css file itself:
>>
>> > curl -v -u admin:geoserver -XPUT -H "Content-type:
>> application/vnd.geoserver.geocss+css" -d @test_css.css
>> http://localhost:8080/geoserver/rest/styles/test_css
>>
>> The upload works at least up to a certain point, but then fails with the
>> following stack trace:
>>
>> org.geoserver.rest.RestletException:
>> java.lang.UnsupportedOperationException
>> at
>> org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)
>> at
>> org.geoserver.rest.ReflectiveResource.handlePut(ReflectiveResource.java:197)
>> at org.restlet.Finder.handle(Finder.java:298)
>> at
>> org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)
>> at org.restlet.Filter.doHandle(Filter.java:105)
>> at org.restlet.Filter.handle(Filter.java:134)
>> at org.restlet.Router.handle(Router.java:444)
>> at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)
>> at
>> com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
>> at
>> org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)
>> at
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>> at
>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
>> at
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>> at
>> org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:800)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:730)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
>> at
>> org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
>> at
>> org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
>> at
>> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
>> at
>> org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
>> at
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
>> at
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
>> at
>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>> at
>> org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
>> at
>> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
>> at
>> org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
>> at
>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at
>> org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
>> at
>> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
>> at
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
>> at
>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
>> at
>> org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
>> at
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>> at
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
>> at
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>> at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
>> at
>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>> at
>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>> at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>> at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>> at org.mortbay.jetty.Server.handle(Server.java:324)
>> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>> at
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>> at
>> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>> at
>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>> Caused by: java.lang.UnsupportedOperationException
>> at org.geoserver.community.css.web.CssHandler.encode(CssHandler.java:59)
>> at org.geoserver.catalog.ResourcePool.writeStyle(ResourcePool.java:1792)
>> at
>> org.geoserver.catalog.rest.StyleResource.handleObjectPut(StyleResource.java:227)
>> at
>> org.geoserver.rest.ReflectiveResource.handlePut(ReflectiveResource.java:194)
>> ... 82 more
>>
>> Now, as far as I can tell, the issue is that the CSS got parsed into a
>> Style object by the
>> handler, and then the StyleResource is trying to save that Style object
>> (instead of the
>> original CSS), as it enters in the first branch of the following if:
>>
>> ResourcePool resourcePool = catalog.getResourcePool();
>>             if (object instanceof Style) {
>>                 resourcePool.writeStyle(s, (Style) object, true);
>>             }
>>             else {
>>                 resourcePool.writeStyle(s, (InputStream)object);
>>             }
>>
>> The conversion from Style (SLD) back to CSS is of course not supported,
>> and... boom.
>>
>> I guess that generally speaking, the parsing and then rewriting of the
>> style should
>> be enabled only for SLD, and only for backwards compatibilty sake (in
>> order to
>> reformat the SLD, which some clients rely upon)?
>>
>> Feedback welcomed
>>
>> Cheers
>> Andrea
>>
>> --
>> ==
>> GeoServer Professional Services from the experts! Visit
>> http://goo.gl/NWWaa2 for more information.
>>
>> Please, notice that GeoSolutions will be closed for seasonal holidays
>> from December the 24th to January the 6th
>> ==
>>
>> Ing. Andrea Aime
>> @geowolf
>> Technical Lead
>>
>> GeoSolutions S.A.S.
>> Via Poggio alle Viti 1187
>> 55054  Massarosa (LU)
>> Italy
>> phone: +39 0584 962313
>> fax: +39 0584 1660272
>> mob: +39  339 8844549
>>
>> http://www.geo-solutions.it
>> http://twitter.com/geosolutions_it
>>
>> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>>
>> Le informazioni contenute in questo messaggio di posta elettronica e/o
>> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
>> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
>> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
>> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
>> darcene notizia via e-mail e di procedere alla distruzione del messaggio
>> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
>> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
>> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
>> principi dettati dal D.Lgs. 196/2003.
>>
>>
>>
>> The information in this message and/or attachments, is intended solely
>> for the attention and use of the named addressee(s) and may be confidential
>> or proprietary in nature or covered by the provisions of privacy act
>> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
>> Code).Any use not in accord with its purpose, any disclosure, reproduction,
>> copying, distribution, or either dissemination, either whole or partial, is
>> strictly forbidden except previous formal approval of the named
>> addressee(s). If you are not the intended recipient, please contact
>> immediately the sender by telephone, fax or e-mail and delete the
>> information in this message that has been received in error. The sender
>> does not give any warranty or accept liability as the content, accuracy or
>> completeness of sent messages and accepts no responsibility  for changes
>> made after they were sent or for other risks which arise as a result of
>> e-mail transmission, viruses, etc.
>>
>> -------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------------
>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>> Get technology previously reserved for billion-dollar corporations, FREE
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Geoserver-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> Geoserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>


-- 
Justin Deoliveira
VP Engineering | Boundless <http://boundlessgeo.com/>
[email protected]
@boundlessgeo <http://twitter.com/boundlessgeo/>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to