Article Number
000035949
Applies To
RSA Product Set: SecurID
RSA Product/Service Type: Authentication Manager SDK
RSA Version/Condition: 8.2 SP1
Issue
A 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)
Cause
Despite 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.
Resolution
To resolve the issue you must
contact RSA Customer Support to obtain a hot fix for RSA Authentication Manager 8.2 SP1 SDK.
Notes
Instructions 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.