000035949 - RSA Authentication Manager 8.2 SP1 SDK SOAP connect fails due to ClassNotFoundException for RemoteAuthenticatorTestConnectionCommand

Document created by RSA Customer Support Employee on Jan 27, 2018Last modified by RSA Customer Support Employee on Feb 12, 2018
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000035949
Applies ToRSA Product Set: SecurID
RSA Product/Service Type: Authentication Manager SDK
RSA Version/Condition: 8.2 SP1
IssueA SOAP connection can be started as follows:
 
Connection conn = ConnectionFactory.getConnection("SOAPCommandTargetBasicAuth");
ClientSession session = conn.connect(username, password
);


When the connect() method is called, the following exception is thrown:
ERROR org.apache.axis.deployment.wsdd.WSDDDeployment - Unable to deploy typemapping: {http://command.internal.access.integration.authmgr.rsa.com}RemoteAuthenticatorTestConnectionCommand java.lang.ClassNotFoundException: com.rsa.authmgr.integration.access.internal.command.RemoteAuthenticatorTestConnectionCommand
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)
at org.apache.axis.deployment.wsdd.WSDDTypeMapping.getLanguageSpecificType(WSDDTypeMapping.java:183)
at org.apache.axis.deployment.wsdd.WSDDDeployment.deployMapping(WSDDDeployment.java:286)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getTypeMappingRegistry(WSDDDeployment.java:462) 
at org.apache.axis.configuration.FileProvider.getTypeMappingRegistry(FileProvider.java:262)
at org.apache.axis.AxisEngine.getTypeMappingRegistry(AxisEngine.java:348)
at org.apache.axis.MessageContext.getTypeMappingRegistry(MessageContext.java:413)
at org.apache.axis.encoding.SerializationContext.getTypeMapping(SerializationContext.java:390)
at org.apache.axis.encoding.SerializationContext.getQNameForClass(SerializationContext.java:602)
at org.apache.axis.encoding.SerializationContext.isPrimitive(SerializationContext.java:650)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:901)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:801)
at org.apache.axis.message.RPCParam.serialize(RPCParam.java:208)
at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530)
at org.apache.axis.SOAPPart.getContentLength(SOAPPart.java:229)
at org.apache.axis.Message.getContentLength(Message.java:510)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:371)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.rsa.webservice.SOAPCommandTarget.remoteMethod(SOAPCommandTarget.java:170)
at com.rsa.webservice.SOAPCommandTarget.executeCommand(SOAPCommandTarget.java:138)
at com.rsa.command.DelegatingCommandTarget.executeCommand(DelegatingCommandTarget.java:66)
at com.rsa.command.TargetableCommand.execute(TargetableCommand.java:297)
at com.rsa.authn.LoginCommand.execute(LoginCommand.java:611)
at com.rsa.authn.AuthenticatedTargetImpl.login(AuthenticatedTargetImpl.java:158)
at com.rsa.command.ConnectionFactory$ConnectionImpl.connect(ConnectionFactory.java:758)
at com.rsa.command.ConnectionFactory$ConnectionImpl.connect(ConnectionFactory.java:740)
CauseDespite all required SDK libraries being available in the Java CLASSPATH, the Java class loader is unable to find the com.rsa.authmgr.integration.access.internal.command.RemoteAuthenticatorTestConnectionCommand class.

The issue is caused by a defect in the RSA Authentication Manager 8.2 SP1 SDK.
ResolutionTo resolve the issue you must contact RSA Customer Support to obtain a hot fix for RSA Authentication Manager 8.2 SP1 SDK.
NotesInstructions to establish a SOAP connection are in the RSA Authentication Manager 8.2 Service Pack 1 Developer's Guide.

The Developer's Guide is available in the Authentication  Manager Extras package (rsa-am-extras-8.2.1.0.0.zip) in folder \am-extras-8.2.1.0.0\Developer Guide.  See the section on Advanced Usage > SOAP Connections.


Review 000034558 - How to download RSA Authentication Manager 8.x full kits and service packs from RSA Link for information on how to download the Authentication Manager Extras package.

A java.lang.ClassNotFoundException message indicates that a required class file does not exist in the Java CLASSPATH.  The general format of the exception text for this type of error is:


java.lang.ClassNotFoundException: <class-name>

where, <class-name> is the name of a Java class.


If you are getting a java.lang.ClassNotFoundException but the class name in the exception text is not com.rsa.authmgr.integration.access.internal.command.RemoteAuthenticatorTestConnectionCommand, then this knowledge base article and hot fix do not apply.  In that situation, search for any other RSA knowledge article that may apply for a ClassNotFoundException message with the class name you are seeing.  If none is found, you most likely have a configuration problem with your CLASSPATH and libraries.  Check that all required libraries are available in the CLASSPATH, check that they are accessible by your program (e. g., file permissions) and check that the configured Java CLASSPATH points to the right directories/folders.

Attachments

    Outcomes