Forum Discussion

Prasad_81758's avatar
Prasad_81758
Icon for Nimbostratus rankNimbostratus
May 20, 2010

Websphere 7 (IBM JDK 1.6) communication with BigIP

I am trying to find a solution for application that will be running in Websphere Application Server V7 version using IBMs JDK 1.6 version that will communicate with BigIP to manage the configurations. I am initializing the BigIP and invoking the XTrustProvider.install method to set the security.

 

 

private void initialize(UsageTypeEnum useType) throws Exception

 

{

 

lbinterface = new Interfaces();

 

lbinterface.initialize(address, username, password);

 

logger.info("User Home :" + System.getProperty("user.home"));

 

System.setProperty("javax.net.ssl.trustStore", System.getProperty("user.home") + "/.keystore");

 

XTrustProvider.install();

 

}

 

 

On execution, I am getting the following error:

 

 

 

INFO: ssl.disable.url.hostname.verification.CWPKI0027I

 

Exception in thread "main" java.lang.reflect.InvocationTargetException

 

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

 

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

 

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)

 

at java.lang.reflect.Method.invoke(Method.java:599)

 

at com.trp.virtualserver.clientutil.ServiceInvocationHandler.fireMethod(ServiceInvocationHandler.java:99)

 

at com.trp.virtualserver.clientutil.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:68)

 

at $Proxy0.getVirtualServerGroup(Unknown Source)

 

at com.xyz.virtualserver.driver.VirtualServerRetrieveDriver.main(VirtualServerRetrieveDriver.java:25)

 

Caused by: java.lang.NullPointerException

 

at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)

 

at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)

 

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 iControl.LocalLBVirtualServerBindingStub.get_list(LocalLBVirtualServerBindingStub.java:2395)

 

at com.xyz.virtualserver.admin.VirtualServerManager.getVirtualServers(VirtualServerManager.java:142)

 

at com.xyz.virtualserver.admin.VirtualServerAdmin.getVirtualServerGroup(VirtualServerAdmin.java:107)

 

... 8 more

 

Caused by: java.lang.NullPointerException

 

at com.ibm.websphere.ssl.protocol.SSLSocketFactory.createSocket(SSLSocketFactory.java:560)

 

at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)

 

at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)

 

at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)

 

at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

 

... 20 more

 

 

 

If I run with the Sun JDK (1.6.17), I am able communicate without any issues. I added the following two jar files to resolve classdef not found errors:

 

 

com.ibm.ffdc.jar, com.ibm.ws.security.crypto.jar

 

 

Thanks for your help.

 

 

  • I was able to get the communication working using IBMs JDK to BigIP. Here are the changes I made:

     

     

    Setting the following properties before calling the XTrustProvider.install method. Used the default keystore file whis was provided as part of the Sun's JRE to set the javax.net.ssl.trustStore

     

     

    System.setProperty("javax.net.ssl.trustStore", defaultKeyStoreFileFromSunJRE);

     

    Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");

     

    Security.setProperty("ssl.ServerSocketFactory.provider", "com.ibm.jsse2.SSLServerSocketFactoryImpl");

     

     

    Needed the following two jar files from Websphere:

     

     

    com.ibm.ffdc.jar, com.ibm.ws.security.crypto.jar