Olá a todos,
estamos começando a utilizar o JAAS junto com o JBoss 4.0.4GA. Configuramos um DatabaseServerLoginModule, apontando para o nosso DataSource, com a principalQuery definida.
O deployment ocorre sem problemas. Porém, quando um EJB é acessado, ocorre uma exceção no cliente, cujo stack trace está abaixo:
Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException
at $Proxy0.getSearchPoints(Unknown Source)
at br.uenf.ururau.gui.crud.AbstractController.getSearchPoints(AbstractController.java:547)
at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.getSearchPoints(DataFrameDirectorImpl.java:76)
at br.uenf.ururau.gui.crud.SearchPanel.getSearchPoints(SearchPanel.java:233)
at br.uenf.ururau.gui.crud.SearchPanel.initialize(SearchPanel.java:80)
at br.uenf.ururau.gui.crud.SearchPanel.<init>(SearchPanel.java:65)
at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.initialize(DataFrameDirectorImpl.java:42)
at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.<init>(DataFrameDirectorImpl.java:35)
at br.uenf.ururau.gui.DataGUIFactory.getDirector(DataGUIFactory.java:34)
at br.uenf.ururau.gui.crud.AbstractController.<init>(AbstractController.java:114)
at br.uenf.academico.posgrad.gui.AreaConcentracaoController.<init>(AreaConcentracaoController.java:14)
at br.uenf.academico.posgrad.gui.PrincipalFrame.createAreaConcentracaoFrame(PrincipalFrame.java:242)
at br.uenf.academico.posgrad.gui.PrincipalFrame.access$4(PrincipalFrame.java:239)
at br.uenf.academico.posgrad.gui.PrincipalFrame$5.actionPerformed(PrincipalFrame.java:84)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBSQLException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:50)
at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:139)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1465)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1698)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128)
at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66)
at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279)
at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
at org.jboss.remoting.Client.invoke(Client.java:525)
at org.jboss.remoting.Client.invoke(Client.java:488)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
... 41 more
E no log do JBoss aparece uma warning:
11:46:44,375 WARN [JBossManagedConnectionPool] Destroying connection that could not be successfully matched:
org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1c737be[state=NORMAL
mc=org.firebirdsql.jca.FBManagedConnection@11f5ff9 handles=0 lastUse=1156949079937 permit=false trackByTx=false
mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@d60225
context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@26d8e6
xaResource=org.firebirdsql.jca.FBManagedConnection@11f5ff9 txSync=null]
Parece algo relacionado ao banco de dados, porém não conseguimos detectar o que estamos fazendo de errado.
A entrada em conf/login-config.xml no JBoss é
<application-policy name="UrurauSecurityDomain">
<authentication>
<login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule"
flag = "required">
<module-option name = "dsJndiName">java:/UenfDS</module-option>
<module-option name = "principalsQuery">SELECT UENF_USUARIO_SENHA FROM UENF_USUARIO WHERE UENF_USUARIO_LOGIN=?</module-option>
</login-module>
</authentication>
</application-policy>
Agradeço muito qualquer ajuda.