Article Content
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. |