From: Jim H. <Ha...@ma...> - 2003-04-08 22:23:14
|
Don, Oti, and Jeff, Thanks to all three of you who gave me the same answer. This definitely solved the problem. As it turns out, I had tried the solution before [IE instantiating with ()], but had removed the () since that caused other problems. Your answers sent me downt the right path and I've now solved that other problem too. The reason () didn't work before is because I needed to unzip some other jar files that were referenced by the LiveNews java class. I think I read somewhere that Jython will handle jar files in the future but for now I guess I should unzip any jar file I come across :-) Thanks again, Jim -----Original Message----- From: Don Coleman [mailto:dco...@ch...] Sent: Tuesday, April 08, 2003 1:23 PM To: Jim Haak Cc: 'jyt...@li...' Subject: Re: [Jython-users] Newbie TypeError when implementing Interface Jim, I think the problem is the main method > if __name__ == '__main__': > liveNews = com.newsedge.live.toolkit.receiver.LiveNews > liveNews.addConnectionListener(ConnectionStatusMonitor()) In your code, you are assigning the class LiveNews to variable liveNews, add "()" so your code calls the constructor. liveNews = com.newsedge.live.toolkit.receiver.LiveNews() since you assigned a class to the variable you are calling addConnectionListener() without an instance of an object, so it expects 2 arguments "self" and a listener. If you get an instance of LiveNews, Jython automatically adds self as the first argument. - Don On Tue, 2003-04-08 at 14:57, Jim Haak wrote: > I have no Java experience, actually no experience outside of Python and no > OO experience either, but I have to use a Java toolkit. > So, I am trying to convert the sample Java file (appended below) into > Jython. > My Jython file and the error message are also appended below. > I have no idea what the expected 2nd argument is since only one is passed in > the example. > Any help would be appreciated. > > ERROR MESSAGE > Traceback (innermost last): > File "SimpleTest.py", line 26, in ? > TypeError: addConnectionListener(): expected 2 args; got 1 > > MY JYTHON FILE (SimpleTest.py) > import com.newsedge.live.toolkit.receiver > from com.newsedge.live.toolkit.receiver import ConnectionListener > > class ConnectionStatusMonitor(ConnectionListener): > def connectionEstablished(self, ipAddress, port, clientName): > print "Connected to %s/%i as %s"%(ipAddress, port, clientName) > def connectionBroken(self): > print "Connection broken." > def connectionUnavailable(self): > print "Connection unavailable." > > if __name__ == '__main__': > liveNews = com.newsedge.live.toolkit.receiver.LiveNews > liveNews.addConnectionListener(ConnectionStatusMonitor()) > > > SAMPLE JAVA FILE > import java.io.*; > import com.newsedge.live.toolkit.receiver.*; > > public class SimpleTest { > private LiveNews liveNews; > public SimpleTest (String[] args) > { > try > { > liveNews = new LiveNews (); > liveNews.addConnectionListener (new ConnectionStatusMonitor ()); > > // Get the arguments. > String clientName = args[0]; > String password = args[1]; > boolean useTunneling = args[2].equals ("true"); > > System.out.println ("Connecting to a Push Engine..."); > liveNews.connect (clientName, password, useTunneling); > } > catch (ConnectException connectException) > { > System.out.println (connectException); > } > catch (IOException ioException) > { > System.out.println (ioException); > } > } > > public static void main (String[] args) > { > if (args.length != 3) > { > // For example, "java SimpleTest henry myPassword false". > System.out.println ("Usage: java SimpleTest <ClientName> <Password> > <Tunneling>"); > System.exit (0); > } > > SimpleTest test = new SimpleTest (args); > } > > private class ConnectionStatusMonitor implements ConnectionListener { > > public ConnectionStatusMonitor () > { > } > > // This method is called when a connection has been established. > public void connectionEstablished (String ipAddress, int port, String > clientName) > { > System.out.println ("Connected to " + ipAddress + "/" + port + " as " > + clientName); > } > > // The method is called when a connection has been broken. > public void connectionBroken () > { > System.out.println ("Connection broken"); > } > > // The method is called when no connection is available. This may be > // called during a failover attempt. > public void connectionUnavailable () > { > System.out.println ("Connection unavailable"); > } > > } > > } > > Thanks very much for any help, > > Jim Haak > > > ------------------------------------------------------- > This SF.net email is sponsored by: ValueWeb: > Dedicated Hosting for just $79/mo with 500 GB of bandwidth! > No other company gives more support or power for your dedicated server > http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |