000036954 - ServiceNow collectors are failing on an upgraded IBM WebSphere (WAS) server in RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on Jun 28, 2019
Version 1Show Document
  • View in full screen mode

Article Content

Article Number000036954
Applies ToRSA Product Set: Identity Governance & Lifecycle
RSA Product/Service Type: Enterprise Software
RSA Version/Condition: 7.x
Platform: WebSphere
Issue
In RSA Identity Governance & Lifecycle, ServiceNow collectors are failing after upgrading an IBM WebSphere Application Server to 8.5.5.8 and higher. This means that the ServiceNow collectors are no longer able to collect the data from the ServiceNow endpoint.  
 


ServiceNow collector failed


The following error can be found in the aveksaServer.log when the ServiceNow collector fails upon testing:
 
11/02/2018 13:40:51.312 ERROR (SIBJMSRAThreadPool : 2) [com.aveksa.server.utils.NodeMessageBroker] Exception while getting test data from collector
com.aveksa.server.runtime.ServerException: org.apache.cxf.service.factory.ServiceConstructionException.
Caused by javax.xml.bind.JAXBException - with linked exception: [java.lang.reflect.InvocationTargetException].
Caused by java.lang.reflect.InvocationTargetException. Caused by java.lang.ClassCastException: com.aveksa.servicenow.wsdl.user.Update$JaxbAccessorF_accumulatedRoles incompatible with com.sun.xml.internal.bind.v2.runtime.reflect.Accessor
Caused By


Stack
org.apache.cxf.service.factory.ServiceConstructionException


at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:413)


at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)


at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:442)


at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:680)


at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:505)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:117)
at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:124)
at com.aveksa.collector.servicenow.util.StubCreator.createUserStub(StubCreator.java:126)
at com.aveksa.collector.servicenow.adc.ServiceNowFujiAccountDataReader.testConnection(ServiceNowFujiAccountDataReader.java:47)


at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collectData(AccountDataCollector.java:351)
at com.aveksa.client.datacollector.collectors.accountdatacollectors.AccountDataCollector.collect(AccountDataCollector.java:302) Caused by: javax.xml.bind.JAXBException - with linked exception: [java.lang.reflect.InvocationTargetException]
at org.apache.cxf.jaxb.JAXBUtils.createRIContext(JAXBUtils.java:577)
at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:410)


... 25 more
Caused by: java.lang.reflect.InvocationTargetException


at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.apache.cxf.jaxb.JAXBUtils.createRIContext(JAXBUtils.java:575)


... 26 more
Caused by: java.lang.ClassCastException: com.aveksa.servicenow.wsdl.user.Update$JaxbAccessorF_accumulatedRoles incompatible with com.sun.xml.internal.bind.v2.runtime.reflect.Accessor


at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:197)
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:189)
at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:279)
at com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:85)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:126)
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:179)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:498)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:315)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:138)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)


... 31 more

End Stack

 


at com.aveksa.server.core.DataCollector$TestDataCollectionResult.getBinaryData(DataCollector.java:897)
at com.aveksa.server.core.DataCollector.getTestData(DataCollector.java:684)
at com.aveksa.server.core.DataCollector.getTestDataString(DataCollector.java:689)
at com.aveksa.server.utils.SONDataRequestHandler.handleCollectorTest(SONDataRequestHandler.java:102)
at com.aveksa.server.utils.SONDataRequestHandler.notifyMessage(SONDataRequestHandler.java:50)
at com.aveksa.server.message.MessageSubscriberProvider.distributeMessage(MessageSubscriberProvider.java:78)
at com.aveksa.server.message.SubscriberMDB.onMessage(SubscriberMDB.java:77)
at com.ibm.ejs.container.WASMessageEndpointHandler.invokeJMSMethod(WASMessageEndpointHandler.java:138)
at com.ibm.ws.ejbcontainer.mdb.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1146)
at com.ibm.ws.ejbcontainer.mdb.MessageEndpointHandler.invoke(MessageEndpointHandler.java:844)
at com.sun.proxy.$Proxy28.onMessage(Unknown Source)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaEndpointInvokerImpl.invokeEndpoint(JmsJcaEndpointInvokerImpl.java:258)
at com.ibm.ws.sib.ra.inbound.impl.SibRaDispatcher.dispatch(SibRaDispatcher.java:919)
at com.ibm.ws.sib.ra.inbound.impl.SibRaSingleProcessListener$SibRaWork.run(SibRaSingleProcessListener.java:597)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:281)
at java.security.AccessController.doPrivileged(AccessController.java:422)
at javax.security.auth.Subject.doAs(Subject.java:494)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:133)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:284)
at java.security.AccessController.doPrivileged(AccessController.java:396)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:65)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:666)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)


For WebSphere, the aveksaServer.log may be found in a directory similar to the following, (where the specific node name would be different) /home/oracle/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/vm-support-11Node01Cell/aveksa.ear/aveksa.war/log.
CauseThere is a missing required JVM argument.
ResolutionFor IBM WebSphere Application Server 8.5.5.8 and higher, we have to add a new JVM argument below:

-Djavax.xml.bind.JAXBContext=com.sun.xml.internal.bind.v2.ContextFactory

 

The argument is shown below:


Generic JVM arguments


Use the following steps to add the new JVM argument in IBM WebSphere Application Server 8.5.5.8 and higher:

  1. Logon to the IBM WebSphere Admin console.  The admin URL will be <host-name>:9060/ibm/console with the valid credentials.
  2. Go to Servers > Server Types > WebSphere Application Servers > server1.
  3. On the right pane, expand Java Process and Management and click Process Definition.
  4. Under Additional Properties, click Java Virtual Machine.
  5. Scroll down to find the Generic JVM Arguments textbox and append the following values to the existing string.

-Djavax.xml.bind.JAXBContext=com.sun.xml.internal.bind.v2.ContextFactory



  1. Click Apply and then click Save.
  2. Login to RSA Identity Governance & Lifecycle's WebSphere machine using SSH client such as PuTTy.
  3. Run the following commands:
    1. Stop AFX:


/home/oracle/AFX/afx stop


  1. Stop the WebSphere Application Server: 


/path/to/websphere/AppServer/bin/stopServer.sh server1


  1.  Start the WebSphere Application Server: 


/path/to/websphere/AppServer/bin/startServer.sh server1


  1. Start FX:


/home/oracle/AFX/afx start



You will also need to add the certificate chain in JVM of IBM WebSphere.  To add the certificates in the JVM for IBM Websphere, refer to the Steps mentioned in the RSA Identity Governance and Lifecycle ServiceNow Application Guide.


Attachments

    Outcomes