Yeah, the loop is probably not required, but was a bit concerned about pulling large amounts of JSON into memory on a small server with no real idea how large things could get. A bit slower, but a bit safer. Will give it a try though.
Thanks for all the info and blueprints. Regards, Jason On Fri, Aug 15, 2014 at 9:32 AM, Morten Olav Hansen <morte...@gmail.com> wrote: > Hm, I didn't see that you actually do one page at a time in your code.. > yes, paging=false also works ;) the other issues remains though.. > > -- > Morten > > > On Fri, Aug 15, 2014 at 2:30 PM, Jan Henrik Øverland < > janhenrik.overl...@gmail.com> wrote: > >> https://apps.dhis2.org/demo/api/organisationUnits.json?*paging=false *? >> >> >> On Fri, Aug 15, 2014 at 9:19 AM, Jason Pickering < >> jason.p.picker...@gmail.com> wrote: >> >>> Hi Morten, >>> >>> The issue here is that I cannot access/do not have rights to >>> /api/metaData on the source server, thus the need to use >>> /api/organisationUnits. However on the destination server we do have rights >>> to /api/metaData. Agree, it would be easier however. >>> >>> Yeah, leaving the "pager" node in and posting it to the destination >>> server seems to be fine. >>> >>> Could you be more specific or will you document the changes/massaging >>> which might be required for transport between these two endpoints? >>> >>> Regards, >>> Jason >>> >>> >>> >>> >>> >>> >>> On Fri, Aug 15, 2014 at 8:06 AM, Morten Olav Hansen <morte...@gmail.com> >>> wrote: >>> >>>> The pager node should be just ignored, you might have other issues >>>> though.. if you are using 2.16? I'm still working on it, but the date >>>> format is different in /api/metadata vs /api/organisationUnits (or any >>>> other type), so you might have issues importing. >>>> >>>> If you just want "all", you should probably use this instead: >>>> /api/metadata?assumeTrue=false&organisationUnits=true >>>> >>>> We are in the middle of changing serializer/deserializer framework >>>> (with our custom one), so there might be small changes when you go to >>>> /api/type and not /api/metadata, which require that you massage the payload >>>> a bit before you can import. >>>> >>>> -- >>>> Morten >>>> >>>> >>>> On Fri, Aug 15, 2014 at 12:33 PM, Jason Pickering < >>>> jason.p.picker...@gmail.com> wrote: >>>> >>>>> Just one other question (see attached code). When getting the JSON >>>>> response from one server, you get a "pager" node. Is there anyway to not >>>>> get this, or does it even matter if I post it back to "metaData" to the >>>>> destination server? >>>>> >>>>> Reason it has to be done this way, is that we do not have access to >>>>> the metaData endpoint in the source server (but do on the destination >>>>> server). A hack of course, but maybe there is a better way? >>>>> >>>>> Below, a simple script (no error handling) to sync orgunits from one >>>>> server to another (in R of course, haha). Any further suggestions would be >>>>> welcome. >>>>> >>>>> Regards, >>>>> Jason >>>>> >>>>> require(rjson) >>>>> require(RCurl) >>>>> #Modify to suit your needs >>>>> url.base<-"******" >>>>> username.base<-"******" >>>>> password.base<-"******" >>>>> url.dest<-"******" >>>>> username.dest<-"******" >>>>> password.dest<-"******" >>>>> >>>>> >>>>> #Get the number of pages from the source server >>>>> curl <- getCurlHandle() >>>>> curlSetOpt(cookiejar='cookies.txt',httpauth = 1L,ssl.verifypeer = >>>>> FALSE, curl=curl) >>>>> login.url<-paste0(url.base,"/dhis-web-commons/security/login.action") >>>>> response<-getURL(login.url, >>>>> userpwd=paste0(username.base,":",password.base),curl=curl) >>>>> url<-paste0(url.base,"api/organisationUnits.json?viewClass=export") >>>>> pages<-fromJSON(getURL(url,curl=curl))$pager$pageCount >>>>> >>>>> #We are going to make a few posts, so get a curl handle >>>>> curl.dest <- getCurlHandle() >>>>> curlSetOpt(cookiejar='cookies_dest.txt',httpauth = 1L,ssl.verifypeer = >>>>> FALSE, curl=curl.dest) >>>>> login.url<-paste0(url.dest,"/dhis-web-commons/security/login.action") >>>>> response<-getURL(login.url, >>>>> userpwd=paste0(username.dest,":",password.dest),curl=curl.dest) >>>>> >>>>> #Loop through each page and post to the destination server >>>>> for ( i in 1:pages) { >>>>> cat("Getting ", i, "of ",pages,"\n") >>>>> >>>>> url<-paste0(url.base,"api/organisationUnits.json?viewClass=export&page=",i) >>>>> response<-getURL(url,curl=curl) >>>>> #Get rid of the pager node. Maybe not required? >>>>> foo<-fromJSON(response)$organisationUnits >>>>> foo<-toJSON(list(organisationUnits=foo)) >>>>> getURL(paste0(url.dest,"api/metaData?preheatCache=false"), >>>>> customrequest='POST', >>>>> httpheader=c('Content-Type'='application/json'), >>>>> postfields=noquote(foo), >>>>> curl=curl.dest >>>>> ) >>>>> } >>>>> >>>>> >>>>> >>>>> On Fri, Aug 15, 2014 at 7:00 AM, Morten Olav Hansen < >>>>> morte...@gmail.com> wrote: >>>>> >>>>>> Yeah, just to clarify, every endpoint (except /api/metadata) can only >>>>>> take one single object. If you want to have multiple of one or more >>>>>> types, >>>>>> you will have to post them through /api/metadata endpoint. >>>>>> >>>>>> Good that you got it working :) >>>>>> >>>>>> -- >>>>>> Morten >>>>>> >>>>>> >>>>>> On Fri, Aug 15, 2014 at 11:56 AM, Jason Pickering < >>>>>> jason.p.picker...@gmail.com> wrote: >>>>>> >>>>>>> Thanks for all the tips and code. >>>>>>> >>>>>>> Changing "orgunits" to "organisationUnits" and posting to the >>>>>>> /metaData endpoint seems to do the trick. >>>>>>> >>>>>>> Best regards, >>>>>>> Jason >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Aug 15, 2014 at 12:11 AM, Jan Henrik Øverland < >>>>>>> janhenrik.overl...@gmail.com> wrote: >>>>>>> >>>>>>>> You are probably aware of this, but if there is no particular >>>>>>>> reason you want to post to api/organisationUnits, it will work with >>>>>>>> multiple orgunits if you wrap it like this >>>>>>>> >>>>>>>> { >>>>>>>> "organisationUnits": [ >>>>>>>> ..., >>>>>>>> ..., >>>>>>>> ..., >>>>>>>> ..., >>>>>>>> etc >>>>>>>> ] >>>>>>>> } >>>>>>>> >>>>>>>> and post it to api/metaData instead. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Aug 14, 2014 at 10:40 PM, Dan Cocos <d...@dancocos.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I don’t think you can post multiple, here’s some PHP code I wrote >>>>>>>>> to add them one by one they all had the same parent so my code is >>>>>>>>> somewhat >>>>>>>>> less complex, you’ll have to have more arrays containing the correct >>>>>>>>> parent >>>>>>>>> and other details for your OUs. >>>>>>>>> >>>>>>>>> >>>>>>>>> <?php //You need to make sure to add a ROOT unit and then make >>>>>>>>> this set to the root user $parentId = "JFSc3tndTlI"; $instanceURL >>>>>>>>> = "http://localhost:8080/api/organisationUnits"; $username = >>>>>>>>> "admin"; $password = "district"; $countryNames = array("Angola", >>>>>>>>> "Antigua >>>>>>>>> and Barbuda", "Asia Regional Program", "Bahamas, The", "Barbadas", >>>>>>>>> "Belize >>>>>>>>> - Carribean", "Belize - Central America", "Botswana", "Burma", >>>>>>>>> "Burundi", "Cambodia", "Cameroon", "Caribbean Region", "Central >>>>>>>>> America Region", "Central Asia Region", "China", "Democratic >>>>>>>>> Republic of the Congo", "Costa Rica", "Cote d'Ivoire", "Dominica", >>>>>>>>> "Dominican >>>>>>>>> Republic", "El Salvador", "Ethiopia", "Ghana", "Grenada", >>>>>>>>> "Guatemala", "Guyana", "Haiti", "Honduras", "India", "Indonesia", >>>>>>>>> "Jamaica", "Kazakhstan", "Kenya", "Kyrgyz Republic", "Laos", >>>>>>>>> "Lesotho", "Malawi", "Mozambique", "Namibia", "Nicaragua", >>>>>>>>> "Nigeria", "Panama", "Papua New Guinea", "Russia", "Rwanda", "Saint >>>>>>>>> Kitts and Nevis", "Saint Lucia", "Saint Vincent and the >>>>>>>>> Grenadines", "South Africa", "South Sudan", "Suriname", >>>>>>>>> "Swaziland", "Tajikistan", "Tanzania", "Thailand", "Trinidad and >>>>>>>>> Tobago", "Turkmenistan", "Uganda", "Ukraine", "Uzbekistan", >>>>>>>>> "Vietnam", "Zambia", "Zimbabwe"); //I couldn't get DHIS2 to >>>>>>>>> ingest with one call with several children so instead I just make a >>>>>>>>> bunch >>>>>>>>> of calls. foreach($countryNames as $ouname){ $data = array("name" >>>>>>>>> => $ouname, "shortName" => $ouname, "parent" => array("id" => >>>>>>>>> $parentId)); $data_string = json_encode($data); $ch = >>>>>>>>> curl_init($instanceURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, >>>>>>>>> "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); >>>>>>>>> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, >>>>>>>>> CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, >>>>>>>>> CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', >>>>>>>>> 'Content-Length: >>>>>>>>> ' . strlen($data_string), 'Accept: application/json', ) ); >>>>>>>>> $result = curl_exec($ch); print $result . "\n"; } ?> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Aug 14, 2014 at 10:29 PM, Mark Polak <mar...@ifi.uio.no> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Jason, >>>>>>>>>> >>>>>>>>>> I tried to look up if it was possible to post a list and from >>>>>>>>>> what i can tell you can’t post a list of objects currently. >>>>>>>>>> >>>>>>>>>> But Morten would have to clarify that as i am not 100% sure if >>>>>>>>>> that is correct. >>>>>>>>>> >>>>>>>>>> Kind regards, >>>>>>>>>> >>>>>>>>>> Mark Polak >>>>>>>>>> m...@thedutchies.com >>>>>>>>>> mar...@ifi.uio.no >>>>>>>>>> +31 6 38 600 925 >>>>>>>>>> >>>>>>>>>> On 14 Aug 2014, at 21:03, Jason Pickering < >>>>>>>>>> jason.p.picker...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>> Unfortunately, I cannot post it a public list, but I think I may >>>>>>>>>> be missing some brackets etc. >>>>>>>>>> >>>>>>>>>> Basically, I need to sync some orgunits between instances with >>>>>>>>>> JSON (after a bit of processing). >>>>>>>>>> >>>>>>>>>> Will the below work (in theory)? I could not really find an >>>>>>>>>> example of POSTing multiple orgunits with JSON through the API in >>>>>>>>>> the docs. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Jason >>>>>>>>>> >>>>>>>>>> { >>>>>>>>>> "orgunits": [ >>>>>>>>>> { >>>>>>>>>> "code": "XXXXX", >>>>>>>>>> "name": "XXXXX", >>>>>>>>>> "created": "2013-03-14T06:17:28.334+0000", >>>>>>>>>> "lastUpdated": "2014-05-27T09:45:58.804+0000", >>>>>>>>>> "shortName": "XXXX", >>>>>>>>>> "parent": { >>>>>>>>>> "name": "XXXX", >>>>>>>>>> "created": "2012-07-14T18:57:55.059+0000", >>>>>>>>>> "lastUpdated": "2013-09-02T08:04:08.693+0000", >>>>>>>>>> "href": "XXXXXXX", >>>>>>>>>> "id": "XXXXXX" >>>>>>>>>> }, >>>>>>>>>> "openingDate": "1900-01-01", >>>>>>>>>> "active": true, >>>>>>>>>> "contactPerson": "XXXX", >>>>>>>>>> "address": "XXXXXX", >>>>>>>>>> "email": "XXXXXX", >>>>>>>>>> "phoneNumber": "XXXXXX", >>>>>>>>>> "level": 5, >>>>>>>>>> "href": "XXXXXX", >>>>>>>>>> "id": "XXXX" >>>>>>>>>> } ]} >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Aug 14, 2014 at 7:22 PM, Mark Polak <mar...@ifi.uio.no> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hey Jason, >>>>>>>>>>> >>>>>>>>>>> Perhaps it could also be useful if you provide the JSON you’re >>>>>>>>>>> sending? That might make it easier to figure out why it happened :) >>>>>>>>>>> >>>>>>>>>>> Kind regards, >>>>>>>>>>> >>>>>>>>>>> Mark Polak >>>>>>>>>>> m...@thedutchies.com >>>>>>>>>>> mar...@ifi.uio.no >>>>>>>>>>> >>>>>>>>>>> On 14 Aug 2014, at 17:25, Jason Pickering < >>>>>>>>>>> jason.p.picker...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>> Hi Morten, >>>>>>>>>>> >>>>>>>>>>> I am trying to post some JSON to the /api/organisationUnit end >>>>>>>>>>> point. I think it looks OK (???) but am something does not seem to >>>>>>>>>>> be >>>>>>>>>>> right. I see this exception. Could you translate for me? :) >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Jason >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> SEVERE: Servlet.service() for servlet [webapi] in context with >>>>>>>>>>> path [/dhis] threw exception >>>>>>>>>>> com.fasterxml.jackson.databind.JsonMappingException: Can not >>>>>>>>>>> deserialize instance of >>>>>>>>>>> org.hisp.dhis.organisationunit.OrganisationUnit out >>>>>>>>>>> of START_ARRAY token >>>>>>>>>>> at [Source: >>>>>>>>>>> org.apache.catalina.connector.CoyoteInputStream@1d72f464; line: >>>>>>>>>>> 1, column: 1] >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:691) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:685) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1215) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:151) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:126) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993) >>>>>>>>>>> at >>>>>>>>>>> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2144) >>>>>>>>>>> at >>>>>>>>>>> org.hisp.dhis.dxf2.render.DefaultRenderService.fromJson(DefaultRenderService.java:79) >>>>>>>>>>> at >>>>>>>>>>> org.hisp.dhis.webapi.controller.AbstractCrudController.postJsonObject(AbstractCrudController.java:352) >>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>>>> Method) >>>>>>>>>>> at >>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>>>>> at >>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:685) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855) >>>>>>>>>>> at >>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:646) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) >>>>>>>>>>> at >>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:113) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) >>>>>>>>>>> at >>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) >>>>>>>>>>> at >>>>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) >>>>>>>>>>> at >>>>>>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) >>>>>>>>>>> at >>>>>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) >>>>>>>>>>> at >>>>>>>>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) >>>>>>>>>>> at >>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>>>>>>>> at >>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>>>>>>>> at java.lang.Thread.run(Thread.java:744) >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp