Hi,
I have been using xmlBlaster for a short while now, but only recently needed to
add security to our application, and hence the use of ssl! I am having problems
with connecting a client to an ssl server running on port 7609.
I believe the problem is I am trying to connect to the server using plain text,
but I am not sure how to overcome this.
I have included my errors and a code snippet of how I connect to the server
below as well.
Hope somebody can help.
Thanks
Regards
Sherif
Here are the details:
The error I get on the server side:
[14-Aug-2006 09:45:06 INFO XmlBlaster.SocketDriver
org.xmlBlaster.util.protocol.RequestReplyExecutor:socket://192.168.1.10:7609]
Full stream compression enabled with 'zlib:stream'
[14-Aug-2006 09:45:06 WARN XmlBlaster.socket_ssl.SSL socket_ssl-HandleClient]
Error parsing TCP data from '/192.168.1.10:33187', check if client and server
have identical compression or SSL settings: javax.net.ssl.SSLException:
Unrecognized SSL message, plaintext connection?
[14-Aug-2006 09:45:06 INFO XmlBlaster.SocketDriver
org.xmlBlaster.util.protocol.RequestReplyExecutor:socket://192.168.1.10:7609]
Full stream compression enabled with 'zlib:stream'
[14-Aug-2006 09:45:06 WARN XmlBlaster.socket_ssl.SSL socket_ssl-HandleClient]
Error parsing TCP data from '/192.168.1.10:33187', check if client and server
have identical compression or SSL settings: javax.net.ssl.SSLException:
Unrecognized SSL message, plaintext connection?
The error I get on the client side:
Shell: trying port 13570
Shell: trying port 13571
Property: Loading xmlBlaster.properties from CLASSPATH
file:/home/sy99/diadem/src/firewall/lib/xmlBlaster.jar!/xmlBlaster.properties
Property: No args array given.
Property: Added 3 property pairs
[14-Aug-2006 09:45:04 [32;40mINFO [0m main XmlBlasterAccess] Loaded security
plugin=htpasswd version=1.0
[14-Aug-2006 09:45:04 [32;40mINFO [0m main JmxWrapper] JMX over RMI is
switched off, for details see
http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.jmx.html#jconsole
[14-Aug-2006 09:45:05 [32;40mINFO [0m main
JdbcConnectionPool-jdbc:hsqldb:/home/sy99/tmp/clientsy991155545104800]
Successfully reconnected to database
[14-Aug-2006 09:45:05 [32;40mINFO [0m main
JdbcConnectionPool-jdbc:hsqldb:/home/sy99/tmp/clientsy991155545104800]
Connections to DB 'jdbc:hsqldb:/home/sy99/tmp/clientsy991155545104800'
successfully established.
[14-Aug-2006 09:45:05 [32;40mINFO [0m main ClientEntryFactory] successfully
initialized
[14-Aug-2006 09:45:05 [32;40mINFO [0m main JdbcManagerCommonTable] The maximum
SQL statement length is not defined in JDBC meta data, we set it to 2048
[14-Aug-2006 09:45:05 [32;40mINFO [0m main
JdbcManagerCommonTable-XB_-tablesCheckAndSetup()] adding table 'XB_ENTRIES' as
the 'entries' table
[14-Aug-2006 09:45:06 [32;40mINFO [0m main SocketConnection] SOCKET client
connected to 'socket://192.168.1.10:7609', callback address is
'socket://192.168.1.10:33187' useUdpForOneway=false
[14-Aug-2006 09:45:06 [32;40mINFO [0m main
DispatchConnection-connection:client/sy991155545105057] Connection 'SOCKET'
transition UNDEF -> ALIVE: Success, connection:client/sy991155545105057 connected.
[14-Aug-2006 09:45:06 [32;40mINFO [0m main
DispatchManager-connection:client/sy991155545105057] Switched to synchronous
message delivery
[14-Aug-2006 09:45:06 [32;40mINFO [0m main XmlBlasterAccess-client/sy99]
Callback settings: type=CACHE onOverflow=deadMessage onFailure=deadMessage
maxEntries=1000 type=SOCKET oneway=false dispatcherActive=true
burstMode.collectTime=0
[14-Aug-2006 09:45:06 [32;40mINFO [0m XmlBlaster.SOCKET
SocketCallbackImpl-sy99] Started callback receiver plugin on
'socket://192.168.1.10:33187'
[14-Aug-2006 09:45:06 [33;40mWARN [0m XmlBlaster.SOCKET
SocketCallbackImpl-sy99] Closing connection to server: java.net.SocketException:
Connection reset
[14-Aug-2006 09:45:06 [33;40mWARN [0m XmlBlaster.SOCKET
SocketCallbackImpl-sy99] There are 1 messages pending without a response,
request IDs are sy99:1
[14-Aug-2006 09:45:06 [33;40mWARN [0m main
DispatchConnection-connection:client/sy991155545105057] Connection transition
ALIVE -> POLLING: socket://192.168.1.10:7609 is unaccessible, we poll for it
every 5000 msec: errorCode=communication.noConnection message=#exported login
failed : java.io.IOException: SocketExecutor: Lost socket connection for
connect(requestId=sy99:1)
[14-Aug-2006 09:45:06 [32;40mINFO [0m main
DispatchManager-connection:client/sy991155545105057] Switched to asynchronous
message delivery
errorCode=user.configuration message=#exported Can't find an xmlBlaster server.
Try to provide the server host/port as described in
http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.configuration.html
or provide a public session ID to support polling for xmlBlaster without an
initial connection. See
'http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.failsafe.html' for
more details.
at
org.xmlBlaster.client.dispatch.ClientDispatchConnectionsHandler.createFakedReturnObjects(ClientDispatchConnectionsHandler.java:138)
at
org.xmlBlaster.util.dispatch.DispatchManager.handleSyncWorkerException(DispatchManager.java:382)
at org.xmlBlaster.util.dispatch.DispatchWorker.run(DispatchWorker.java:83)
at org.xmlBlaster.util.dispatch.DispatchManager.putPre(DispatchManager.java:530)
at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:457)
at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:437)
at org.xmlBlaster.client.XmlBlasterAccess.queueMessage(XmlBlasterAccess.java:731)
at org.xmlBlaster.client.XmlBlasterAccess.connect(XmlBlasterAccess.java:298)
at org.trustcom.external.XMLBlaster.connect(XMLBlaster.java:271)
at org.trustcom.external.XMLBlaster.execute(XMLBlaster.java:218)
at org.trustcom.ManagedObject.execute(ManagedObject.java:259)
at org.trustcom.OID.execute(OID.java:180)
at org.trustcom.Util.useObject(Util.java:530)
at org.trustcom.Util.parse(Util.java:354)
at org.trustcom.Util.parse(Util.java:390)
at org.trustcom.Util.parse(Util.java:328)
at org.trustcom.Util.eval(Util.java:544)
at org.trustcom.Util.parse(Util.java:363)
at org.trustcom.Util.parse(Util.java:328)
at org.trustcom.Util.parse(Util.java:340)
at org.trustcom.SelfManagedCell.main(SelfManagedCell.java:193)
Diadem Firewall System Manager is active!
Policy: active is true
Shell port 13571 ready
[14-Aug-2006 09:45:06 [32;40mINFO [0m XmlBlaster.PingTimer SocketConnection]
SOCKET client connected to 'socket://192.168.1.10:7609', your configured local
parameters are localHostname=192.168.1.10 on localPort=33187 useUdpForOneway=false
[14-Aug-2006 09:45:06 [32;40mINFO [0m XmlBlaster.SOCKET
SocketCallbackImpl-dummyLoginName] Started callback receiver plugin on
'socket://192.168.1.10:33187'
[14-Aug-2006 09:45:06 [33;40mWARN [0m XmlBlaster.SOCKET
SocketCallbackImpl-dummyLoginName] Closing connection to server:
java.net.SocketException: Connection reset
[14-Aug-2006 09:45:06 [33;40mWARN [0m XmlBlaster.SOCKET
SocketCallbackImpl-dummyLoginName] There are 1 messages pending without a
response, request IDs are dummyLoginName:2
Here's is how I connect to the server:
private void connect(String[] args, String uname, String passwd) {
try {
glob = new Global();
glob.init(args);
connection = glob.getXmlBlasterAccess();
ConnectQos qos;
if (uname == null)
qos = new ConnectQos(glob);
else
qos = new ConnectQos(glob, uname, passwd);
// Ok, make the connection
connection.connect(qos, new I_Callback() {
public String update(String name, UpdateKey updateKey, byte[] content,
UpdateQos updateQos) {
System.out.println("XMLBlaster: Receiving undirected message");
return "";
}
});
// Handle lost server explicitly
connection.registerConnectionListener(new I_ConnectionStateListener() {
public void reachedAlive(ConnectionStateEnum oldState,
I_XmlBlasterAccess connection) {
/*
* ConnectReturnQos conRetQos = connection.getConnectReturnQos();
* log.info(ME, "I_ConnectionStateListener: We were lucky, connected
* to " + connection.getGlobal().getId() + " as " +
* conRetQos.getSessionName());
*/
System.out.println("XMLBlaster: Destroying " +
connection.getQueue().getNumOfEntries()
+ " client side tailback messages");
connection.getQueue().clear();
}
public void reachedPolling(ConnectionStateEnum oldState,
I_XmlBlasterAccess connection) {
System.out
.println("XMLBlaster: I_ConnectionStateListener: No connection to
xmlBlaster server, we are polling ...");
}
public void reachedDead(ConnectionStateEnum oldState, I_XmlBlasterAccess
connection) {
System.out.println("XMLBlaster: I_ConnectionStateListener: Connection
from "
+ connection.getGlobal().getId() + " to xmlBlaster is DEAD, doing
exit.");
System.exit(1);
}
});
}
catch (XmlBlasterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}