It seems from the exception trace you give that your xmpp
container is not connected (i.e. you haven't connected it to
an xmpp server)...so it fails when trying to send (any)
message.
...
Caused by: java.net.ConnectException: not connected
at
org.eclipse.ecf.provider.generic.ClientSOContainer.checkConnected(ClientSOContainer.java:509)
Hope this helps,
Scott
On 9/28/2010 6:04 PM, Lucas Augusto Scotta Merlo wrote:
Hi Scott, thank you to the
reply.
Good night for everybody.
I tryed to create a new channel how you said.
But I could not. Below I present the steps I did. Can
anyone help me?
Thanks.
First, I create a channel:
public IChannelListener presenceChannelListener =
null;
public IChannel channelLock;
public IChannel createChannelLock() throws
ECFException {
ID channelID =
IDFactory.getDefault().createStringID("conclID");
org.eclipse.ecf.core.util.ECFException: send
message exception
at
org.eclipse.ecf.provider.datashare.BaseChannel.sendMessage(BaseChannel.java:229)
at
br.ufes.lprm.concl.consistency.control.lock.EstruturaLock.Lock(EstruturaLock.java:46)
// my class one a use the channel
at
br.ufes.lprm.concl.awareness.outline.OutlineConclListener.actionPerformed(OutlineConclListener.java:60)
// another class that is one GUI to the lock
at
javax.swing.AbstractButton.fireActionPerformed(Unknown
Source)
at
javax.swing.AbstractButton$Handler.actionPerformed(Unknown
Source)
at
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
at
javax.swing.DefaultButtonModel.setPressed(Unknown
Source)
at javax.swing.AbstractButton.doClick(Unknown
Source)
at
javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown
Source)
at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
Source)
at java.awt.Component.processMouseEvent(Unknown
Source)
at
javax.swing.JComponent.processMouseEvent(Unknown
Source)
at java.awt.Component.processEvent(Unknown
Source)
at java.awt.Container.processEvent(Unknown
Source)
at java.awt.Component.dispatchEventImpl(Unknown
Source)
at java.awt.Container.dispatchEventImpl(Unknown
Source)
at java.awt.Component.dispatchEvent(Unknown
Source)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
Source)
at
java.awt.LightweightDispatcher.processMouseEvent(Unknown
Source)
at
java.awt.LightweightDispatcher.dispatchEvent(Unknown
Source)
at java.awt.Container.dispatchEventImpl(Unknown
Source)
at java.awt.Window.dispatchEventImpl(Unknown
Source)
at java.awt.Component.dispatchEvent(Unknown
Source)
at java.awt.EventQueue.dispatchEvent(Unknown
Source)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
Source)
at
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown
Source)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at
java.awt.EventDispatchThread.pumpEvents(Unknown
Source)
at
java.awt.EventDispatchThread.pumpEvents(Unknown
Source)
at java.awt.EventDispatchThread.run(Unknown
Source)
Caused by: java.net.ConnectException: not connected
at
org.eclipse.ecf.provider.generic.ClientSOContainer.checkConnected(ClientSOContainer.java:509)
at
org.eclipse.ecf.provider.generic.ClientSOContainer.sendMessage(ClientSOContainer.java:426)
at
org.eclipse.ecf.provider.generic.SOContext.sendMessage(SOContext.java:230)
at
org.eclipse.ecf.provider.datashare.BaseChannel.sendMessage(BaseChannel.java:227)
... 29 more
On 9/15/2010 12:16 PM, Lucas Augusto Scotta
Merlo wrote:
Hello everybody.
I'm finishing a project for my
theses's: one extension of ECF for
NCL(language of Brazilian Digital TV).
In mine extension we include a lock
feature (lock) on the elements. To do
this we create a message type specifies
to be treated on the other side. Then
this message's lock is sent to other
user by
channel.sendMessage(DocShare.getOtherID(),
msg.serializeMsgLock());
To obtain the channel, we create
a "static object DocShare docShareNCL at
DocShare class, then we use in other
class: DocShare.docshare.getChannel();
Yet the message is not being
treated across the OT and only by our
methods of blocking. We use the same
listener for OT e lock;
We can have only one listener per
channel? How I create one new channel?
So thanks.
Although this sounds fascinating, I don't quite
understand what you are trying to accomplish and
so it's not immediately clear to me what
mechanism you need here...e.g. would you like
to use the *existing* DocShare channel to send
your own message (so that the delivery order of
your message relative to other docshare
messages) is consistent (because channels are
sender ordered...i.e. the order that the
messages on a given channel are received is the
same as the order that they are sent. This is
only true for a single channel...if messages are
sent on different channels then the delivery
order is not guaranteed.
So by modifying the code that uses the DocShare
created channel you can insert your own message
in the docshare/OT message stream...or you can
create/use a separate channel, but the delivery
order of your message on this second channel
will not be related to the order of messages
received on the DocShare channel. If you do
want a second asynchronous channel, you can
create a second channel by using the
IChannelContainerAdapter.createChannel(...).
The DocShare code does this to create/setup it's
channel.
Also...it would be great if you would describe
your thesis work a little further on this
list...and if you wish it might be good for you
to get involved with the current effort on the
creation of a wave provider (which also uses
operational transformation)...i.e. see [1].
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lucas Augusto Scotta Merlo
MSc in Computer - UFES http://www.inf.ufes.br/~scotta/