IBM Support

IJ34804: HTTP POST USING MEAWEB/ES/ GIVES ERROR "OSLC#EXPECTEDOBJGOTARRAY" FOR A POST HAVING JSON ARRAY RECORDS IN IT.

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • HTTP Post using meaweb/es/ gives error
    "oslc#expectedobjgotarray" for a post having JSON Array records
    in it.
    
    Stack:
    9/1/21 9:33:49:015 PDT] 0000013f SystemOut     O 01 Sep 2021
    09:33:49:015 [ERROR] [MAXIMO] [] Error while processing the
    incoming transaction
    javax.ejb.EJBException: nested exception is:
    psdi.util.MXApplicationException: oslc#expectedobjgotarray
    	at psdi.iface.gateway.MEAGatewayBean.maxSecureProcessExternalD
    ataSync(MEAGatewayBean.java:130)
    	at psdi.iface.gateway.EJSLocalStatelessenterpriseservice_9dde8
    a69.maxSecureProcessExternalDataSync(UnknownSource)
    	at
    psdi.iface.util.WebUtil.invokeEnterpriseEJB(WebUtil.java:291)
    	at psdi.iface.servlet.MEAServlet.invokeEJB(MEAServlet.java:428)
    
    	at psdi.iface.servlet.MEAServlet.doPost(MEAServlet.java:305)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Serv
    letWrapper.java:1235)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleReques
    t(ServletWrapper.java:779)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleReques
    t(ServletWrapper.java:478)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRe
    quest(ServletWrapperImpl.java:178)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarg
    et(WebAppFilterChain.java:143)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(W
    ebAppFilterChain.java:96)
    	at com.ibm.tivoli.maximo.filter.MTIntegrationFilter.doFilter(M
    TIntegrationFilter.java:68)
    	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilt
    er(FilterInstanceWrapper.java:197)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(W
    ebAppFilterChain.java:90)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter
    (WebAppFilterManager.java:969)
    	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFi
    lters(WebAppFilterManager.java:1109)
    	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleR
    equest(CacheServletWrapper.java:82)
    	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebConta
    iner.java:963)
    	at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebC
    ontainer.java:1817)
    	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChann
    elLink.java:382)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handle
    Discrimination(HttpInboundLink.java:465)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handle
    NewRequest(HttpInboundLink.java:532)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.proces
    sRequest(HttpInboundLink.java:318)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(
    HttpInboundLink.java:289)
    	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallbac
    k.sendToDiscriminators(NewConnectionInitialReadCallback.java:21
    4)
    	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallbac
    k.complete(NewConnectionInitialReadCallback.java:113)
    	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futur
    eCompleted(AioReadCompletionListener.java:175)
    	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(Abstrac
    tAsyncFuture.java:217)
    	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(A
    syncChannelFuture.java:161)
    	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    
    	at
    com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(Resul
    tHandler.java:775)
    	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909)
    Caused by:
    
    psdi.util.MXApplicationException: oslc#expectedobjgotarray
    	at com.ibm.tivoli.maximo.oslc.OslcUtils.bytesToJSONObject(Oslc
    Utils.java:1591)
    	at psdi.iface.migexits.ExitProcessor.processExitsIn(ExitProces
    sor.java:703)
    	at psdi.iface.mic.EntMicService.processExternalData(EntMicServ
    ice.java:1301)
    	at psdi.iface.mic.EntMicService.processExternalData(EntMicServ
    ice.java:1163)
    	at psdi.iface.gateway.MEAGatewayBean.secureProcessExternalData
    SyncInternal(MEAGatewayBean.java:188)
    	at psdi.iface.gateway.MEAGatewayBean.maxSecureProcessExternalD
    ataSync(MEAGatewayBean.java:126)
    	... 35 more
    
    STEPS TO REPRODUCE:
    
    The steps below uses MAXDEMO as an example:
    
    1)Go to Enterprise Service MXMETERInterface and fill in the
    Processing Class with value:
    com.ibm.tivoli.maximo.fdmbo.JSONMapperExit
    
    2)Go to JSON Mapping and create a new as below:
    Mapping: EXTSYS1.MXMETERINTERFACE.IN
    Object Structure: MXMETERDATA
    
    JSON Data:
    {
    "siteid":"BEDFORD",
    "assetnum":"PFTEST",
    "metername":"RUNHOURS",
    "newreading":11}
    
    Click on Properties, In JSON Properties Mapping section create a
    new record for each map below:
    Target Attribute: ASSETNUM
    Source Property: $.assetnum
    
    Target Attribute: METERNAME
    Source Property: $.metername
    
    Target Attribute: NEWREADING
    Source Property: $.newreading
    
    Target Attribute: SITEID
    Source Property: $.siteid
    
    3)Go to Asset application, create a new Asset PFTEST, assign the
    meter RUNHOURS on it and cahnge the status to ACTIVE.
    
    4)POST the JSON below:
    
    URL: MXSERVER/meaweb/es/EXTSYS1/MXMETERInterface
    
    Body:[{
    "siteid":"BEDFORD",
    "assetnum":"PFTEST",
    "metername":"RUNHOURS",
    "newreading":12},{
    "siteid":"BEDFORD",
    "assetnum":"PFTEST",
    "metername":"RUNHOURS",
    "newreading":13}]
    
    RESULTS:
    
    Error 500: oslc#expectedobjgotarray
    
    EXPECTED RESULTS:
    
    No error should return.
    
    REPORTED IN VERSION:
    
    Tivoli's process automation engine 7.6.1.2
    

Local fix

  • NA
    

Problem summary

Problem conclusion

  • The fix for this APAR is contained in the following maintenance
    package: | Release 7.6.1.3 of Base Services
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ34804

  • Reported component name

    INTEGRATION

  • Reported component ID

    5724R46I1

  • Reported release

    761

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-09-01

  • Closed date

    2021-09-10

  • Last modified date

    2021-09-10

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    INTEGRATION

  • Fixed component ID

    5724R46I1

Applicable component levels

[{"Line of Business":{"code":"LOB59","label":"Sustainability Software"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"761"}]

Document Information

Modified date:
11 September 2021