Hi,
at the moment I have got the following problem, when starting SIP
communicator as an applet:
The applet starts to load, but when loading the different bundles, it
fails with the following LinkageError:
ERROR: Unable to start system bundle. (java.lang.LinkageError:
sun/plugin/net/protocol/http/Handler)
java.lang.LinkageError: sun/plugin/net/protocol/http/Handler
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:781)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.forName(SecureAction.java:93)
at
org.apache.felix.framework.URLHandlers.createURLStreamHandler(URLHandlers.java:173)
at java.net.URL.getURLStreamHandler(URL.java:1106)
at java.net.URL.<init>(URL.java:572)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:161)
at java.net.JarURLConnection.<init>(JarURLConnection.java:144)
at
sun.net.www.protocol.jar.JarURLConnection.<init>(JarURLConnection.java:63)
at
sun.plugin.net.protocol.jar.CachedJarURLConnection.<init>(CachedJarURLConnection.java:57)
at sun.plugin.net.protocol.jar.Handler.openConnection(Handler.java:18)
at java.net.URL.openConnection(URL.java:945)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:645)
at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:538)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:597)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:559)
at sun.misc.URLClassPath$3.run(URLClassPath.java:331)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:320)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:297)
at sun.misc.URLClassPath.getResource(URLClassPath.java:167)
at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:155)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:781)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.forName(SecureAction.java:93)
at
org.apache.felix.framework.URLHandlers.createURLStreamHandler(URLHandlers.java:173)
at java.net.URL.getURLStreamHandler(URL.java:1106)
at java.net.URL.<init>(URL.java:572)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at
org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:301)
at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:90)
at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:68)
at
org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:1069)
at
org.apache.felix.framework.cache.BundleArchive.revise(BundleArchive.java:701)
at
org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:143)
at
org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:145)
at org.apache.felix.framework.Felix.installBundle(Felix.java:2234)
at org.apache.felix.framework.Felix.installBundle(Felix.java:2194)
at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:124)
at
org.apache.felix.main.AutoActivator.processAutoProperties(AutoActivator.java:121)
at org.apache.felix.main.AutoActivator.start(AutoActivator.java:55)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:853)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:580)
at
org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:3771)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:853)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:580)
at org.apache.felix.framework.Felix.start(Felix.java:828)
at
net.java.sip.communicator.launcher.SIPCommunicatorApplet.init(SIPCommunicatorApplet.java:201)
at sun.applet.AppletPanel.run(AppletPanel.java:418)
at java.lang.Thread.run(Thread.java:619)
The reason seems to be, that "sun/plugin/net/protocol/http/Handler"
should be loaded a second time: As I debug it, I can see that the call
(exactly as in the above stacktrace, with the same parameters) is
successful for the first time. But as the call is performed a second
time, it fails with the shown exception.
The curious thing is, that this only happens if I start the applet in a
browser (I checked on firefox on win/ linux and on IE 6 on win - all the
same result). If the applet is started with the java appletviewer,
everything works well (there the call to load
"sun/plugin/net/protocol/http/Handler" is only performed once).
At the moment I don't know how to go on with this, as I have got no idea
what the reason for this behaviour is. I already tested it with the
newest (trunk) felix version, but no difference. Maybe somebody else
knows why it behaves like that...
Thanks
Sebastian
Matthew Rubenstein schrieb:
···
I am really looking forward to seeing you complete the applet. Let me
know if you need help, and I'll try. Also note that there have been
others talking on this list about helping to produce such an applet, who
might still be able to help. Good luck.
On Mon, 2008-01-28 at 10:03 +0100, Sebastian Heib wrote:
Hi,
as part of my thesis to finish my studies I am currently working on
running Sip communicator as an applet, to embedd it into a webpage.
And it is possible to run it (with the Felix framework) inside an
applet. These are the things you need to do to archive this:
- write a custom class that extends JApplet, which starts the Felix
framework, with all its bundle parameters (at least the ones you need),
as they are currently in the felix.client.run.properties file. To load
the bundles, put them on a webserver and load them from there.
- you also have to write a small bundle which holds the JApplet Class
you created to make it available to the framework
- create an instance of this bundle before you start Felix, and pass the
reference as an parameter to the framework
- in the framework, get this instance and set the contentPane of the
applet (currently I have just changed the swing-ui bundle, so that the
main panel is set as the content pane of the applet)
That's all. I haven't done many tests on it yet, but starting it from
eclipse as an applet works quiet well, making telephone calls via SIP is
possible (at least on my ubuntu linux machine)
Sebastian
Matthew Rubenstein schrieb:
I have investigated that use case. S-C is embedded in the Felix
framework, which can not run as an applet. It could be converted to a
Java Web Start app, but the JWS environment is not installed on all
browsers. The task of converting S-C to a pure applet would require more
research into its dependencies, and a significant effort for one or more
people. But it could be done. And I have found a couple of other people
interested in working on it. Are you interested in working on it, or
helping in some way?
On Tue, 2008-01-22 at 22:59 +0100, Kovács Zoltán wrote:
Dear Developers,
I'm new to the list. My name is Zoltan, I work as a sysadmin at a VoIP company.
My question is if SIP Communicator is capable of being a Java applet
on a web page. If yes, has anyone experience in doing this?
Thank you for your answer in advance.
Best regards, Zoltan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net
--
/**
* Sebastian Heib
* Software Developer
*
* Synyx GmbH & Co. KG
* Business in Components
* Karlstr. 68
* 76137 Karlsruhe
*
* phone +49(0)721 66 24 866
* fax +49(0)721 66 48 877
* eMail heib@synyx.de
* www http://www.synyx.de
* irc irc.synyx.de
*
* Sitz der Gesellschaft: Karlsruhe
* Registergericht: Mannheim
* Handelsregisternummer: HRA 4793
* USt-IdNr.: DE249264296
*
* Komplementärin: Elatech Verwaltungs GmbH
* Sitz der Gesellschaft: Karlsruhe
* Geschäftsführer: Markus Daniel
* Registergericht: Mannheim
* Handelsregisternummer: HRB 7250
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net