Hi, I have created a custom WPS for the import stuff, and I am putting the base64 encoding of the file to be imported in the request body. The problem now is when the file size reaches few kilo bytes (e.g. 10kb) the GeoServer throws a NullPointerException
java.lang.NullPointerException at java.io.PrintWriter.write(PrintWriter.java:473) at org.geoserver.wps.response.ExecuteProcessResponse.writeLiteral(ExecuteProcessResponse.java:259) at org.geoserver.wps.response.ExecuteProcessResponse.write(ExecuteProcessResponse.java:190) at org.geoserver.ows.Dispatcher.response(Dispatcher.java:1032) at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:268) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:26) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:69) at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:73) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66) at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:37) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:213) <http://www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:213)> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91) at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:141) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:79) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:570) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Could you please guide me how to solve this problem. Best regards, Fawzy -- Securely sent with Tutanota. Get your own encrypted, ad-free mailbox: https://tutanota.com Nov 14, 2019, 21:51 by andrea.a...@geo-solutions.it: > Hi, > I believe most web containers limit the size of what can be uploaded by POST, > but it's configurable.. in each container in a different way. > For example, in GeoSolutions we use Tomcat, and the configuration is called > maxPostSize, see here: > https://tomcat.apache.org/tomcat-8.0-doc/config/http.html > > Cheers > Andrea > > > On Wed, Nov 13, 2019 at 7:09 PM <> faw...@tutamail.com> > wrote: > >> Hi, >> The problem in this solution is that the limitation of the body of the WPS >> request. I tried to search if there is a limitation on that, but found that >> it's just the limitation of the web-browser you are using. Is that correct? >> are there any other limitations on the WPS request's body? >> >> Regards, >> Fawzy >> >> -- >> Securely sent with Tutanota. Get your own encrypted, ad-free mailbox: >> https://tutanota.com >> >> >> Nov 13, 2019, 21:03 by >> andrea.a...@geo-solutions.it>> : >> >>> Hi, >>> since this is a mix of info that can be directly managed by GeoServer (the >>> GML), and info that do not (the images), >>> and you're already familiar with writing a WPS process, writing another >>> process to do the import and place the >>> files wherever you need would seem the easiest way. >>> >>> Cheers >>> Andre >>> >>> On Wed, Nov 13, 2019 at 6:55 PM <>>> faw...@tutamail.com>>> > wrote: >>> >>>> Hi Andrea, >>>> Thanks a lot for your replies. >>>> My problem is: >>>> 1- I have a vector layer, which has some points. >>>> 2- When a user adds a point, he associates an image to it. He first needs >>>> to upload these images to GeoServer (using a custom WPS I've made), then >>>> assign each image to as much points as he wants. >>>> 3- Now I need to implement an Import/Export functionality in my program. >>>> So for the vector layer I decided to export it as GML, then when importing >>>> the program converts this GML to a WFS-T Insert. I've succeeded in that >>>> point. >>>> 4- The problem is in the images, they must be also exported, then imported >>>> to the same relative path. >>>> 5- So, I decided to export the images also and combine them with the GML >>>> file in a zip file. Then when importing I decompress the file, take the >>>> images and put them in the correct relative path, then process the GML >>>> file as described in (3). >>>> 6- My problem now is how to upload this zip file to GeoServer. >>>> >>>> Regards, >>>> Fawzy >>>> >>>> -- >>>> Securely sent with Tutanota. Get your own encrypted, ad-free mailbox: >>>> https://tutanota.com >>>> >>>> >>>> Nov 13, 2019, 20:40 by >>>> andrea.a...@geo-solutions.it>>>> : >>>> >>>>> On Wed, Nov 13, 2019 at 6:36 PM <>>>>> faw...@tutamail.com>>>>> > wrote: >>>>> >>>>>> My data is neither a vector nor a raster data. It's a custom data. >>>>>> >>>>> >>>>> Oh, in that case the import is the last of your problems, GeoServer has >>>>> concepts only for rasters and vectors, >>>>> if your custom data can be related to one of those two (or both) you'll >>>>> have to write first a new DataStore (for the vector part) >>>>> or a new coverage reader (for the raster part). >>>>> >>>>> Hard to give you more information without an explanation of what "custom" >>>>> really means >>>>> >>>>> Cheers >>>>> Andrea >>>>> >>>>> == >>>>> >>>>> GeoServer Professional Services from the experts! Visit >>>>> >>>>> http://goo.gl/it488V>>>>> for more information.==Ing. Andrea Aime >>>>> @geowolfTechnical LeadGeoSolutions S.A.S.Via di Montramito 3/A55054 >>>>> Massarosa (LU)phone: +39 0584 962313fax: +39 0584 1660272mob: +39 339 >>>>> 8844549 >>>>> http://www.geo-solutions.it>>>>> >>>>> >>>>> http://twitter.com/geosolutions_it>>>>> >>>>> ------------------------------------------------------- >>>>> Con >>>>> riferimento alla normativa sul trattamento dei dati personali (Reg. UE >>>>> 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si >>>>> precisa che ogni circostanza inerente alla presente email (il suo >>>>> contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è >>>>> riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il >>>>> messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra >>>>> operazione è illecita. Le sarei comunque grato se potesse darmene >>>>> notizia.This email is intended only for the person or entity to which it >>>>> is addressed and may contain information that is privileged, confidential >>>>> or otherwise protected from disclosure. We remind that - as provided by >>>>> European Regulation 2016/679 “GDPR” - copying, dissemination or use of >>>>> this e-mail or the information herein by anyone other than the intended >>>>> recipient is prohibited. If you have received this email by mistake, >>>>> please notify us immediately by telephone or e-mail. >>>>> >>>>> >>>> >>>> >>> >>> >>> -- >>> >>> Regards,Andrea Aime==GeoServer Professional Services from the experts! >>> Visit >>> http://goo.gl/it488V>>> for more information.==Ing. Andrea Aime >>> @geowolfTechnical LeadGeoSolutions S.A.S.Via di Montramito 3/A55054 >>> Massarosa (LU)phone: +39 0584 962313fax: +39 0584 1660272mob: +39 339 >>> 8844549 >>> http://www.geo-solutions.it>>> >>> >>> http://twitter.com/geosolutions_it>>> >>> ------------------------------------------------------- >>> Con riferimento >>> alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - >>> Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni >>> circostanza inerente alla presente email (il suo contenuto, gli eventuali >>> allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i >>> destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per >>> errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le >>> sarei comunque grato se potesse darmene notizia.This email is intended only >>> for the person or entity to which it is addressed and may contain >>> information that is privileged, confidential or otherwise protected from >>> disclosure. We remind that - as provided by European Regulation 2016/679 >>> “GDPR” - copying, dissemination or use of this e-mail or the information >>> herein by anyone other than the intended recipient is prohibited. If you >>> have received this email by mistake, please notify us immediately by >>> telephone or e-mail. >>> >>> >> >> > > > -- > > Regards,Andrea Aime==GeoServer Professional Services from the experts! Visit > > http://goo.gl/it488V> for more information.==Ing. Andrea Aime > @geowolfTechnical LeadGeoSolutions S.A.S.Via di Montramito 3/A55054 > Massarosa (LU)phone: +39 0584 962313fax: +39 0584 1660272mob: +39 339 > 8844549 > http://www.geo-solutions.it> > http://twitter.com/geosolutions_it> > ------------------------------------------------------- > Con riferimento > alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - > Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni > circostanza inerente alla presente email (il suo contenuto, gli eventuali > allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i > destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per > errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei > comunque grato se potesse darmene notizia.This email is intended only for the > person or entity to which it is addressed and may contain information that is > privileged, confidential or otherwise protected from disclosure. We remind > that - as provided by European Regulation 2016/679 “GDPR” - copying, > dissemination or use of this e-mail or the information herein by anyone other > than the intended recipient is prohibited. If you have received this email by > mistake, please notify us immediately by telephone or e-mail. > >
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users