Errors importing Events in 2.15 using the Web API (or maybe I am doing something wrong)

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
	<event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">

	<dataValues>

	<dataValue dataElement="sQdFlFQptCX" value="34"/>

	<dataValue dataElement="gVqInPr2eqC" value="30-34"/>

	<dataValue dataElement="hjy1KTANQbl" value="Unknown"/>

	<dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
<eventList>

	<event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">

	<dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose

Hi

The id scheme must be added to the url, and not the actual payload…

···


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

···

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:

···


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Thanks Morten,

This is the template I use

<?xml version="1.0"?>
<event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">

	<dataValues>

	<dataValue dataElement="sQdFlFQptCX" value="34"/>

	</dataValues>

</event>

<event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">

	<dataValues>

	<dataValue dataElement="sQdFlFQptCX" value="20"/>

	</dataValues>

Now I get the error: HTTP Status 500 - Can not deserialize instance of java.lang.String out of START_OBJECT token

···

On Thu, Aug 14, 2014 at 10:38 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Can you give me the full stack trace? also remember to add namespace

···


Morten

On Thu, Aug 14, 2014 at 3:54 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Thanks Morten,

This is the template I use

<?xml version="1.0"?>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>

  </dataValues>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="20"/>

  </dataValues>

Now I get the error: HTTP Status 500 - Can not deserialize instance of java.lang.String out of START_OBJECT token

On Thu, Aug 14, 2014 at 10:38 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Here it goes. Thanks. I have added the namespace with the same result.

C:\Program Files\cURL\bin>curl.exe -d @c:\Users\Jose\PSI\testTZ.xml "https://dev2.psi-mis.org/api/events?orgUnitIdScheme=code

" -H “Content-Type:application/xml” -u myuser:mypass -v

  • Hostname was NOT found in DNS cache

  • Adding handle: conn: 0xe05248

  • Adding handle: send: 0

  • Adding handle: recv: 0

  • Curl_addHandleToPipeline: length: 1

    • Conn 0 (0xe05248) send_pipe: 1, recv_pipe: 0
  • Trying 107.170.109.182…

  • Connected to dev2.psi-mis.org (107.170.109.182) port 443 (#0)

  • successfully set certificate verify locations:

  • CAfile: C:\Program Files\cURL\bin\curl-ca-bundle.crt

CApath: none

  • SSLv3, TLS handshake, Client hello (1):

  • SSLv3, TLS handshake, Server hello (2):

  • SSLv3, TLS handshake, CERT (11):

  • SSLv3, TLS handshake, Server finished (14):

  • SSLv3, TLS handshake, Client key exchange (16):

  • SSLv3, TLS change cipher, Client hello (1):

  • SSLv3, TLS handshake, Finished (20):

  • SSLv3, TLS change cipher, Client hello (1):

  • SSLv3, TLS handshake, Finished (20):

  • SSL connection using RC4-SHA

  • Server certificate:

OU=Domain Control Validated - RapidSSL®; CN=*.psi-mis.org

  •    start date: 2014-05-10 14:40:48 GMT
    
  •    expire date: 2015-06-13 11:02:37 GMT
    
  •    subjectAltName: [dev2.psi-mis.org](http://dev2.psi-mis.org) matched
    
  •    issuer: C=US; O=GeoTrust, Inc.; CN=RapidSSL CA
    
  •    SSL certificate verify ok.
    
  • Server auth using Basic with user ‘jose’

POST /api/events?orgUnitIdScheme=code HTTP/1.1

Authorization: Basic am9zZTpKR00yMDE0eHg=

User-Agent: curl/7.34.0

Host: dev2.psi-mis.org

Accept: /

Content-Type:application/xml

Content-Length: 1484

Expect: 100-continue

< HTTP/1.1 100 Continue

< HTTP/1.1 500 Internal Server Error

  • Server nginx is not blacklisted

< Server: nginx

< Date: Thu, 14 Aug 2014 09:05:23 GMT

< Content-Type: text/html;charset=utf-8

< Transfer-Encoding: chunked

< Connection: keep-alive

  • HTTP error before end of send, stop sending

<

Apache Tomcat/7.0.39 - Error report<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;

background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s

ize:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Ta

homa,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-colo

r:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {col

or : black;}HR {color : #525D76;}–>

HTTP Status 500 - Can not deserialize instance of java.lang.Str

ing out of START_OBJECT token


type Exception report

message Can

not deserialize instance of java.lang.String out of START_OBJECT token

description The server encountered

an internal error that prevented it from fulfilling this request.

exception

com.fasterxml.jackson.data

bind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token

at [Source: java.io.StringReader@372d828; line: 1, column: 71] (through reference chain: org.hisp.dhis.dxf2.events.event.Eve

nt["event"])

com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:163)

com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:588)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:90)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:59)

com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:336)

com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:89)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:290)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:112)

com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2580)

com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1810)

org.hisp.dhis.dxf2.events.event.JacksonEventService.fromXml(JacksonEventService.java:86)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:155)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:120)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.jav

org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport

.java:260)

org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

com.sun.proxy.$Proxy131.addEventsXml(Unknown Source)

org.hisp.dhis.api.controller.event.EventController.postXmlEvent(EventController.java:259)

org.hisp.dhis.api.controller.event.EventController$$FastClassByCGLIB$$e5ad859e.invoke(<generated>)

org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.

java:64)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)

org.hisp.dhis.api.controller.event.EventController$$EnhancerByCGLIB$$6471438a.postXmlEvent(<generated>)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)

org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableH

andlerMethod.java:104)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingH

andlerAdapter.java:745)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandl

erAdapter.java:686)

org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)

org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)

javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)

javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118

)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:8

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.

java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwa

reRequestFilter.java:54)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java

:201)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.j

ava:87)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)

org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.39 logs.

<HR

size=“1” noshade=“noshade”>

Apache Tomcat/7.0.39

* Closing connection 0
  • SSLv3, TLS alert, Client hello (1):
···

On Thu, Aug 14, 2014 at 10:55 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Can you give me the full stack trace? also remember to add namespace


Morten

On Thu, Aug 14, 2014 at 3:54 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Thanks Morten,

This is the template I use

<?xml version="1.0"?>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>

  </dataValues>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="20"/>

  </dataValues>

Now I get the error: HTTP Status 500 - Can not deserialize instance of java.lang.String out of START_OBJECT token

On Thu, Aug 14, 2014 at 10:38 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Its hard to say exactly what’s wrong here… but can you send me the file as an attachment? it is complaining about the format of the file, so there must be something there… probably something

···


Morten

On Thu, Aug 14, 2014 at 4:08 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Here it goes. Thanks. I have added the namespace with the same result.

C:\Program Files\cURL\bin>curl.exe -d @c:\Users\Jose\PSI\testTZ.xml "https://dev2.psi-mis.org/api/events?orgUnitIdScheme=code

" -H “Content-Type:application/xml” -u myuser:mypass -v

  • Hostname was NOT found in DNS cache
  • Adding handle: conn: 0xe05248
  • Adding handle: send: 0
  • Adding handle: recv: 0
  • Curl_addHandleToPipeline: length: 1
    • Conn 0 (0xe05248) send_pipe: 1, recv_pipe: 0
  • Trying 107.170.109.182…
  • successfully set certificate verify locations:
  • CAfile: C:\Program Files\cURL\bin\curl-ca-bundle.crt

CApath: none

  • SSLv3, TLS handshake, Client hello (1):
  • SSLv3, TLS handshake, Server hello (2):
  • SSLv3, TLS handshake, CERT (11):
  • SSLv3, TLS handshake, Server finished (14):
  • SSLv3, TLS handshake, Client key exchange (16):
  • SSLv3, TLS change cipher, Client hello (1):
  • SSLv3, TLS handshake, Finished (20):
  • SSLv3, TLS change cipher, Client hello (1):
  • SSLv3, TLS handshake, Finished (20):
  • SSL connection using RC4-SHA
  • Server certificate:
  •    subject: serialNumber=vXzmodpZ3BxUINTU1qnaoJo0cbAA/PpJ; OU=GT94607079; OU=See [www.rapidssl.com/resources/cps](http://www.rapidssl.com/resources/cps) (c)14;
    

OU=Domain Control Validated - RapidSSL®; CN=*.psi-mis.org

  •    start date: 2014-05-10 14:40:48 GMT
    
  •    expire date: 2015-06-13 11:02:37 GMT
    
  •    subjectAltName: [dev2.psi-mis.org](http://dev2.psi-mis.org) matched
    
  •    issuer: C=US; O=GeoTrust, Inc.; CN=RapidSSL CA
    
  •    SSL certificate verify ok.
    
  • Server auth using Basic with user ‘jose’

POST /api/events?orgUnitIdScheme=code HTTP/1.1

Authorization: Basic am9zZTpKR00yMDE0eHg=

User-Agent: curl/7.34.0

Host: dev2.psi-mis.org

Accept: /

Content-Type:application/xml

Content-Length: 1484

Expect: 100-continue

< HTTP/1.1 100 Continue

< HTTP/1.1 500 Internal Server Error

  • Server nginx is not blacklisted

< Server: nginx

< Date: Thu, 14 Aug 2014 09:05:23 GMT

< Content-Type: text/html;charset=utf-8

< Transfer-Encoding: chunked

< Connection: keep-alive

  • HTTP error before end of send, stop sending

<

Apache Tomcat/7.0.39 - Error report<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;

background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s

ize:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Ta

homa,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-colo

r:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {col

or : black;}HR {color : #525D76;}–>

HTTP Status 500 - Can not deserialize instance of java.lang.Str

ing out of START_OBJECT token


type Exception report

message Can

not deserialize instance of java.lang.String out of START_OBJECT token

description The server encountered

an internal error that prevented it from fulfilling this request.

exception

com.fasterxml.jackson.data

bind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token

at [Source: java.io.StringReader@372d828; line: 1, column: 71] (through reference chain: org.hisp.dhis.dxf2.events.event.Eve

nt["event"])

com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:163)

com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:588)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:90)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:59)

com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:336)

com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:89)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:290)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:112)

com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2580)

com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1810)

org.hisp.dhis.dxf2.events.event.JacksonEventService.fromXml(JacksonEventService.java:86)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:155)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:120)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.jav

a:96)

org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport

.java:260)

org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

com.sun.proxy.$Proxy131.addEventsXml(Unknown Source)

org.hisp.dhis.api.controller.event.EventController.postXmlEvent(EventController.java:259)

org.hisp.dhis.api.controller.event.EventController$$FastClassByCGLIB$$e5ad859e.invoke(<generated>)

org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.

java:64)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)

org.hisp.dhis.api.controller.event.EventController$$EnhancerByCGLIB$$6471438a.postXmlEvent(<generated>)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)

org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableH

andlerMethod.java:104)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingH

andlerAdapter.java:745)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandl

erAdapter.java:686)

org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)

org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)

javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)

javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118

)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:8

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.

java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwa

reRequestFilter.java:54)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java

:201)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.j

ava:87)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)

org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.39 logs.

<HR

size=“1” noshade=“noshade”>

Apache Tomcat/7.0.39

* Closing connection 0
  • SSLv3, TLS alert, Client hello (1):

On Thu, Aug 14, 2014 at 10:55 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Can you give me the full stack trace? also remember to add namespace


Morten

On Thu, Aug 14, 2014 at 3:54 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Thanks Morten,

This is the template I use

<?xml version="1.0"?>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>

  </dataValues>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="20"/>

  </dataValues>

Now I get the error: HTTP Status 500 - Can not deserialize instance of java.lang.String out of START_OBJECT token

On Thu, Aug 14, 2014 at 10:38 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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

Great! It is working now! Thanks Morten

···

On Fri, Aug 15, 2014 at 11:08 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

This file is working fine in 2.16/trunk, sorry for telling you something wrong, but since you are using an old version, you do actually need the old way of doing this… which is:

This is due to a missing feature in the library we used for 2.15, it was fixed in 2.16 and version going forward does not require this double element


Morten

On Fri, Aug 15, 2014 at 4:02 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Here it goes…

We can set up an account for you in our dev server in case you need some testing.

Many thanks Morten

On Fri, Aug 15, 2014 at 10:11 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Its hard to say exactly what’s wrong here… but can you send me the file as an attachment? it is complaining about the format of the file, so there must be something there… probably something


Morten

On Thu, Aug 14, 2014 at 4:08 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Here it goes. Thanks. I have added the namespace with the same result.

C:\Program Files\cURL\bin>curl.exe -d @c:\Users\Jose\PSI\testTZ.xml "https://dev2.psi-mis.org/api/events?orgUnitIdScheme=code

" -H “Content-Type:application/xml” -u myuser:mypass -v

  • Hostname was NOT found in DNS cache
  • Adding handle: conn: 0xe05248
  • Adding handle: send: 0
  • Adding handle: recv: 0
  • Curl_addHandleToPipeline: length: 1
    • Conn 0 (0xe05248) send_pipe: 1, recv_pipe: 0
  • Trying 107.170.109.182…
  • successfully set certificate verify locations:
  • CAfile: C:\Program Files\cURL\bin\curl-ca-bundle.crt

CApath: none

  • SSLv3, TLS handshake, Client hello (1):
  • SSLv3, TLS handshake, Server hello (2):
  • SSLv3, TLS handshake, CERT (11):
  • SSLv3, TLS handshake, Server finished (14):
  • SSLv3, TLS handshake, Client key exchange (16):
  • SSLv3, TLS change cipher, Client hello (1):
  • SSLv3, TLS handshake, Finished (20):
  • SSLv3, TLS change cipher, Client hello (1):
  • SSLv3, TLS handshake, Finished (20):
  • SSL connection using RC4-SHA
  • Server certificate:
  •    subject: serialNumber=vXzmodpZ3BxUINTU1qnaoJo0cbAA/PpJ; OU=GT94607079; OU=See [www.rapidssl.com/resources/cps](http://www.rapidssl.com/resources/cps) (c)14;
    

OU=Domain Control Validated - RapidSSL®; CN=*.psi-mis.org

  •    start date: 2014-05-10 14:40:48 GMT
    
  •    expire date: 2015-06-13 11:02:37 GMT
    
  •    subjectAltName: [dev2.psi-mis.org](http://dev2.psi-mis.org) matched
    
  •    issuer: C=US; O=GeoTrust, Inc.; CN=RapidSSL CA
    
  •    SSL certificate verify ok.
    
  • Server auth using Basic with user ‘jose’

POST /api/events?orgUnitIdScheme=code HTTP/1.1

Authorization: Basic am9zZTpKR00yMDE0eHg=

User-Agent: curl/7.34.0

Host: dev2.psi-mis.org

Accept: /

Content-Type:application/xml

Content-Length: 1484

Expect: 100-continue

< HTTP/1.1 100 Continue

< HTTP/1.1 500 Internal Server Error

  • Server nginx is not blacklisted

< Server: nginx

< Date: Thu, 14 Aug 2014 09:05:23 GMT

< Content-Type: text/html;charset=utf-8

< Transfer-Encoding: chunked

< Connection: keep-alive

  • HTTP error before end of send, stop sending

<

Apache Tomcat/7.0.39 - Error report<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;

background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s

ize:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Ta

homa,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-colo

r:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {col

or : black;}HR {color : #525D76;}–>

HTTP Status 500 - Can not deserialize instance of java.lang.Str

ing out of START_OBJECT token


type Exception report

message Can

not deserialize instance of java.lang.String out of START_OBJECT token

description The server encountered

an internal error that prevented it from fulfilling this request.

exception

com.fasterxml.jackson.data

bind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token

at [Source: java.io.StringReader@372d828; line: 1, column: 71] (through reference chain: org.hisp.dhis.dxf2.events.event.Eve

nt["event"])

com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:163)

com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:588)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:90)

com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:59)

com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:336)

com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:89)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:290)

com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:112)

com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2580)

com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1810)

org.hisp.dhis.dxf2.events.event.JacksonEventService.fromXml(JacksonEventService.java:86)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:155)

org.hisp.dhis.dxf2.events.event.JacksonEventService.addEventsXml(JacksonEventService.java:120)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.jav

a:96)

org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport

.java:260)

org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

com.sun.proxy.$Proxy131.addEventsXml(Unknown Source)

org.hisp.dhis.api.controller.event.EventController.postXmlEvent(EventController.java:259)

org.hisp.dhis.api.controller.event.EventController$$FastClassByCGLIB$$e5ad859e.invoke(<generated>)

org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.

java:64)

org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634)

org.hisp.dhis.api.controller.event.EventController$$EnhancerByCGLIB$$6471438a.postXmlEvent(<generated>)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

java.lang.reflect.Method.invoke(Method.java:606)

org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)

org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableH

andlerMethod.java:104)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingH

andlerAdapter.java:745)

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandl

erAdapter.java:686)

org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)

org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)

javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)

javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202)

net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118

)

org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:8

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.

java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwa

reRequestFilter.java:54)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java

:201)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticatio

nProcessingFilter.java:183)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:113)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.j

ava:87)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)

org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.39 logs.

<HR

size=“1” noshade=“noshade”>

Apache Tomcat/7.0.39

* Closing connection 0
  • SSLv3, TLS alert, Client hello (1):

On Thu, Aug 14, 2014 at 10:55 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Can you give me the full stack trace? also remember to add namespace


Morten

On Thu, Aug 14, 2014 at 3:54 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Thanks Morten,

This is the template I use

<?xml version="1.0"?>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>

  </dataValues>
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="20"/>

  </dataValues>

Now I get the error: HTTP Status 500 - Can not deserialize instance of java.lang.String out of START_OBJECT token

On Thu, Aug 14, 2014 at 10:38 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Sorry, the xml format has changed a bit… you don’t require a eventList anymore…

You can just do:


Morten

On Thu, Aug 14, 2014 at 3:35 PM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Ups… thanks Morten. Now it is working fine for one event. Thank you.

what about sending multiple events? I am still getting " HTTP Status 500 - Unrecognized field “eventList” "

On Thu, Aug 14, 2014 at 7:10 AM, Morten Olav Hansen mortenoh@gmail.com wrote:

Hi

The id scheme must be added to the url, and not the actual payload…


Morten

On Thu, Aug 14, 2014 at 4:58 AM, Jose Garcia Muñoz josemp10@gmail.com wrote:

Dear Dev community

I am trying to import several events to DHIS2 (2.15) using the Web API. This is a template of the XML file (note I am using the org. unit code for matching):

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>
  <dataValue dataElement="sQdFlFQptCX" value="34"/>
  <dataValue dataElement="gVqInPr2eqC" value="30-34"/>
  <dataValue dataElement="hjy1KTANQbl" value="Unknown"/>
  <dataValue dataElement="es3zQNdcN7d" value="4"/>

When I call the API, I get the following error: “Event.orgUnit does not point to a valid organisation unit”. So, following the documentation I added the attribute orgUnitIdScheme=“code”, something like the following: However, in this case I am getting: "HTTP Status 500 - Unrecognized field “orgUnitIdScheme”.

Also as I have to send multiple events, I am using the schema:

<?xml version="1.0"?>
  <event program="FurLapSaYy4" orgUnit="TZPSI_P-1563" eventDate="2014-01-01" status="COMPLETED" storedBy="jose">
  <dataValues>

but in this case the error I got is "HTTP Status 500 - Unrecognized field “eventList”

Am I missing something? I tried to use the Import/Export app as well, but nothing was imported.

I am using the 2.15 with the build revision 15201

Many thanks

Jose


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