Fala galera!
Tenho uma aplicação onde preciso fazer a integração com o OpenOffice. Utilizo o Eclipse Helios, Java 6, JBoss 5.1 AS (ou Tomcat 6) e BrOffice 3.3. Consegui fazer funcionar uns exemplos, como OOoBeanViewer. Coloquei as classes na minha aplicação, gerei a applet e copiei todos os jars necessários para fazer funcionar. Quando carrego a página jsp, o sistema carrega a applet e traz os botões para que o usuário possa criar um documento, planilha, apresentação, etc. Mas na hora que clico no botão para criar um documento (e os outros tb) ocorrem erros.
Da 1ª vez ocorre o seguinte erro:
cannot find msvcr70
cannot find msvcr71
cannot find uwinapi
cannot find jawt
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at com.sun.star.comp.beans.OOoBean.getOOoConnection(OOoBean.java:280)
at com.sun.star.comp.beans.OOoBean.getMultiServiceFactory(OOoBean.java:300)
at com.sun.star.comp.beans.OOoBean.loadFromURL(OOoBean.java:570)
at br.com.phonetic.applet.Editor.createBlankDoc(Editor.java:271)
at br.com.phonetic.applet.Editor.access$1(Editor.java:264)
at br.com.phonetic.applet.Editor$1.actionPerformed(Editor.java:79)
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.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.officebean)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkLink(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sun.star.lib.util.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:59)
at com.sun.star.comp.beans.LocalOfficeConnection.<clinit>(LocalOfficeConnection.java:127)
... 33 more
Da 2ª vez em diante, ocorre o seguinte erro:
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: Could not initialize class com.sun.star.comp.beans.LocalOfficeConnection
at com.sun.star.comp.beans.OOoBean.getOOoConnection(OOoBean.java:280)
at com.sun.star.comp.beans.OOoBean.getMultiServiceFactory(OOoBean.java:300)
at com.sun.star.comp.beans.OOoBean.loadFromURL(OOoBean.java:570)
at br.com.phonetic.applet.Editor.createBlankDoc(Editor.java:271)
at br.com.phonetic.applet.Editor.access$1(Editor.java:264)
at br.com.phonetic.applet.Editor$5.actionPerformed(Editor.java:119)
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)
Já procurei exaustivamente por uma solução, mas não encontrei em lugar nenhum.
O interessante é que esse erro só acontece quando rodo a aplicação pelo JBoss ou Tomcat 6. Quando eu seleciono a minha classe com o botão direito e clico em “Run As Java Applet”, o eclipse carrega a applet e consigo abrir todas as opções (documento, apresentação, planilha, etc) sem problema nenhum. Não ocorre erro e funciona perfeitamente.
Alguém pode me ajudar a descobrir porque o erro só ocorre quando tento rodar a applet a partir de um container?
Abraço,