connectProps.setProperty("type", "SOAP");
connectProps.setProperty("host", "XXXXXXXX");
connectProps.setProperty("port", "8886");
AdminClient adminClient = null;
adminClient = AdminClientFactory.createAdminClient(connectProps);
but i always get an error:
Algorithm SSL not available
What should i look for?
TIA
Mine is like so:
Properties connectProperties = new Properties();
connectProperties.setProperty(AdminClient.CONNECTOR_TYPE,AdminClient.CONNECTOR_TYPE_SOAP);
connectProperties.setProperty(AdminClient.CONNECTOR_HOST,"XXXXXXXX");
connectProperties.setProperty(AdminClient.CONNECTOR_PORT,"8879");
adminClient = AdminClientFactory.createAdminClient(connectProperties);
Make sure that your SOAP port (8886) really is your SOAP one.
Are you sure you're using the WebSphere JDK/JRE to run that piece of code ?
In the project classpath the following jars are included:
- jmxri.jar
- jmxtools.jar
- rmissl.jar
- jmxremote_optional.jar
- jmxremote.jar
- other WAS jars (such as jaas.jar, wasjmx.jar, wsexception.jar, admin.jar, ibmjsse-debug.jar, xml.jar)
The Exception is:
java.security.NoSuchAlgorithmException: Algorithm SSL not available
at javax.net.ssl.SSLSecurity.a(SSLSecurity.java:15)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:31)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:23)
at org.apache.soap.util.net.SSLUtils.buildSSLSocket(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.soap.util.net.HTTPUtils.buildSocket(Unknown Source)
at org.apache.soap.util.net.HTTPUtils.post(Unknown Source)
at org.apache.soap.transport.http.SOAPHTTPConnection.send(Unknown Source)
at org.apache.soap.rpc.Call.invoke(Unknown Source)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient$2.run(SOAPConnectorClient.java:233)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:111)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:230)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:183)
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:300)
at it.gsi.jmx.prove.TestSOAP.main(TestSOAP.java:75)
com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: Impossibile creare il connettore SOAP per connettere lhost {0} alla porta {1}
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:354)
at it.gsi.jmx.prove.TestSOAP.main(TestSOAP.java:75)
---- Begin backtrace for nested exception
java.lang.reflect.InvocationTargetException: com.ibm.websphere.management.exception.ConnectorNotAvailableException
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:250)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:183)
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:285)
at it.gsi.jmx.prove.TestSOAP.main(TestSOAP.java:75)
---- Begin backtrace for nested exception
[SOAPException: faultCode=SOAP-ENV:Client; msg=Error parsing HTTP status line " ": java.util.NoSuchElementException; targetException=java.lang.IllegalArgumentException: Error parsing HTTP status line " ": java.util.NoSuchElementException]
at org.apache.soap.transport.http.SOAPHTTPConnection.send(Unknown Source)
at org.apache.soap.rpc.Call.invoke(Unknown Source)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient$2.run(SOAPConnectorClient.java:233)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:111)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:230)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:183)
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:285)
at it.gsi.jmx.prove.TestSOAP.main(TestSOAP.java:75)
Hope this will help more.
Thanks for your attention
Ken
I still cant understand why it didnt work before (inside a "main"), but i'm quite happy to make it work with servlets anyway.
Hope this will help more
thanks
I told you why: you weren't running WebSphere's JRE, which has Java2
Security implementations for SSL. Evidently, the eclipse JVM that runs
'main()' by default, does not have SSL installed.
If this doesn't make sense, please get a book on Java2 Security. It's
complex.
Ken
As Ken indicated you needed to run the application with an IBM JDK to have
the crypto provider (not only specific jar files but also specific property
files entries are necessary to have the crypto provider available).