Tag Archive for 'jboss'

Banco de dados HSQLDB com JBoss AS 5.1GA e Hibernate

Iniciei o estudo do framework Jboss Seam recentemente e tive alguns problemas no uso do HSQLDB na aplicação. Na verdade no uso do Datasource dentro do Jboss AS.

Dessa forma caso alguém tenha algum problema colocarei abaixo como está a infraestrutura e como configurei o arquivo de datasource no Jboss:

– Jboss AS 5.1.0 GA
– Jboss Seam 2.0.2 CR1
– JSF 1.2

Na aplicação o arquivo hibernate.cfg.xml está assim:

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="show_sql">false</property>
        <property name="connection.datasource">java:/SeamTestDS</property>
        <property name="hbm2ddl.auto">create-drop</property>
        <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        <property name="transaction.flush_before_completion">true</property>
        <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    </session-factory>
</hibernate-configuration>

No diretório do Jboss, criei um arquivo xml com o nome da aplicação (SeamTest) que será o datasource usado pela app:

Arquivo “seamtest-ds.xml”:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
   <local-tx-datasource>
      <jndi-name>SeamTestDS</jndi-name>
	  <connection-url>jdbc:hsqldb:.</connection-url>
      <driver-class>org.hsqldb.jdbcDriver</driver-class>
      <user-name>sa</user-name>
      <password></password>
      <min-pool-size>5</min-pool-size>
      <max-pool-size>20</max-pool-size>
      <idle-timeout-minutes>0</idle-timeout-minutes>
      <track-statements/>
      <prepared-statement-cache-size>32</prepared-statement-cache-size>
      <metadata>
         <type-mapping>Hypersonic SQL</type-mapping>
      </metadata>
	  <depends>jboss:service=Hypersonic,database=SeamTestDB</depends>
   </local-tx-datasource>
   <mbean code="org.jboss.jdbc.HypersonicDatabase" 
     name="jboss:service=Hypersonic,database=SeamTestDB">
     <attribute name="Database">SeamTestDB</attribute>
     <attribute name="InProcessMode">true</attribute>
   </mbean>
 </datasources>

Dessa forma a app consegue “enxergar” o datasource e funcionar sem problemas.

Em um post próximo devo publicar como fiz a aplicação.

É isso!

com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Application was not properly initialized at startup, could not find Factory: javax.faces.context.ExceptionHandlerFactory

O título do post é grande mas preferi deixar ele assim mesmo por ser autoexplicativo.

Ao tentar rodar uma aplicação no JBoss 5.1 usando JSF 2.0 obtive o erro do título:

com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Application was not properly initialized at startup, could not find Factory: javax.faces.context.ExceptionHandlerFactory

Esse erro aconteceu mesmo com as libs “jsf-api-2.0.4-b09.jar” e “jsf-impl-2.0.4-b09.jar” na pasta WEB-INF/lib. A solução eu encontrei nesse link:

https://community.jboss.org/wiki/UpgradeJBossASToJSF2

Basicamente só é preciso entrar na pasta do servidor e copiar o arquivo jboss-faces.jar para a pasta lib do projeto.

No meu caso a pasta do servidor é: C:\java\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\jsf-libs

É isso.