Connecting to Hibernate
revof11 Sep 24, 2007 12:15 PMAll,
I have been working on a very simple EJB 3 sample setup for myself and am working on the persistence setup for testing simple data storage via an EntityManager. The problem is that I am unable to connect to the internal HSQL database using my configurations. I would appreciate if someone could help me out.
The following are the steps I took to attempt this database setup:
1. Install JBoss w/ the JEMS Installer (using all the defaults)
2. Start the server
3. Drop my Ejb3Example-ds.xml file into the deploy folde
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>Ejb3ExampleDB</jndi-name>
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}Ejb3ExampleDB</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 />
<security-domain>HsqlDbRealm</security-domain>
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
<depends>jboss:service=Hypersonic,database=Ejb3ExampleDB</depends>
</local-tx-datasource>
<!-- This mbean can be used when using in process persistent db -->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic,database=Ejb3ExampleDB">
<attribute name="Database">Ejb3ExampleDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>
</datasources>
4. Build my application source and package it into a Jar including my persistence.xml (sp?) file within the META-INF directory
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="Ejb3Example"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/Ejb3ExampleDB</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> <property name="hibernate.hbm2ddl.auto" value="create-drop" /> </properties> </persistence-unit> </persistence>
5. Drop my Jar into the deploy folder with my DAO class set up as follows:
@Stateful
public class MyDaoBean implements MyDaoLocal, MyDaoRemote
{
@PersistenceContext(unitName = "Ejb3Example")
private EntityManager entityManager;
private Logger logger;
@PostConstruct
public void init() {
// attribute initialization
logger = Logger.getLogger("Ejb3ExampleStorageManager");
// core logging
logger.info("EJB 3 Example storage initialized.");
logger.info("Storage flush mode: " + entityManager.getFlushMode());
}
public void ping() {
logger.debug("Object Storage Ping");
}
public void create(Serializable obj) {
logger.info("Persis requested for " + obj.getClass().getName());
entityManager.persist(obj);
}
public <T> T find(Class<T> objectType, UUID primaryKey) {
logger.info("Lookup requested for " + objectType.getName() + "/" + primaryKey);
return entityManager.find(objectType, primaryKey);
}
}The problems that I get are exceptions thrown apparently relating to authentication errors (larger stack trace available upon request):
... org.jboss.resource.JBossResourceException: No matching credentials in Subject! ... org.jboss.util.NestedSQLException: No matching credentials in Subject!; - nested throwable: (org.jboss.resource.JBossResourceException: No matching credentials in Subject!) ... Caused by: org.jboss.resource.JBossResourceException: No matching credentials in Subject! ... etc.
What am I doing wrong?