Pessoas, gostaria de um caminho para descobrir o que está faltando…
quando peço para subir o JBoss recebo a exception:
17:29:15,652 WARN [ServiceController] Problem starting service jboss.j2ee:ear=termo.ear,jar=termo-ejb.jar,name=TermoDAOBean,service=EJB3
java.lang.NullPointerException
at org.jboss.ejb.txtimer.DatabasePersistencePolicy.listTimerHandles(DatabasePersistencePolicy.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy30.listTimerHandles(Unknown Source)
at org.jboss.ejb.txtimer.EJBTimerServiceImpl.restoreTimers(EJBTimerServiceImpl.java:408)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Olhando melhor o log, vi que na verdade o problema começa aki:
10:25:35,063 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
10:25:35,259 INFO [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateless.StatelessContainer
10:25:35,265 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=termo.ear,jar=termo-ejb.jar,name=RegraRelacionamentoDAOBean,service=EJB3 with dependencies:
10:25:35,265 INFO [JmxKernelAbstraction] persistence.units:ear=termo.ear,jar=termo-ejb.jar,unitName=termo
10:25:35,454 INFO [EJBContainer] STARTED EJB: br.com.coc.academico.conteudo.core.dao.ejb3.RegraRelacionamentoDAOBean ejbName: RegraRelacionamentoDAOBean
10:25:35,522 INFO [EJBContainer] STOPPED EJB: br.com.coc.academico.conteudo.core.dao.ejb3.RegraRelacionamentoDAOBean ejbName: RegraRelacionamentoDAOBean
10:25:35,527 WARN [ServiceController] Problem starting service jboss.j2ee:ear=termo.ear,jar=termo-ejb.jar,name=RegraRelacionamentoDAOBean,service=EJB3
java.lang.NullPointerException
at org.jboss.ejb.txtimer.DatabasePersistencePolicy.listTimerHandles(DatabasePersistencePolicy.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
...
parece que não consegue injetar o EJB?!?
@Stateless
public class RegraRelacionamentoDAOBean extends
GenericEJB3DAO<RegraRelacionamento, Integer> implements
RegraRelacionamentoDAO {
@Override
public List<RegraRelacionamento> getList() {
return super.getList();
}
@Override
public RegraRelacionamento getById(Integer id) {
return super.getById(id, false);
}
@Override
public RegraRelacionamento delete(RegraRelacionamento regraRelacionamento) {
return super.delete(regraRelacionamento);
}
@Override
public RegraRelacionamento add(RegraRelacionamento regraRelacionamento) {
return super.add(regraRelacionamento);
}
@Override
public List<RegraRelacionamento> search(
RegraRelacionamento regraRelacionamento, String... exclusions) {
return super.search(regraRelacionamento, exclusions);
}
@Override
public RegraRelacionamento edit(RegraRelacionamento regraRelacionamento) {
return super.edit(regraRelacionamento);
}
}
<!-- The jndi name of the DataSource, it is prefixed with java:/ -->
<!-- Datasources are not available outside the virtual machine -->
<jndi-name>DefaultDS</jndi-name>
<!-- For server mode db, allowing other processes to use hsqldb over tcp.
This requires the org.jboss.jdbc.HypersonicDatabase mbean.
<connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
-->
<!-- For totally in-memory db, not saved when jboss stops.
The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
<connection-url>jdbc:hsqldb:.</connection-url>
-->
<!-- For in-process persistent db, saved when jboss stops.
The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
-->
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
<!-- The driver class -->
<driver-class>org.hsqldb.jdbcDriver</driver-class>
<!-- The login and password -->
<user-name>sa</user-name>
<password></password>
<!--example of how to specify class that determines if exception means connection should be destroyed-->
<!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
<!-- this will be run before a managed connection is removed from the pool for use by a client-->
<!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
<!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
<min-pool-size>5</min-pool-size>
<!-- The maximum connections in a pool/sub-pool -->
<max-pool-size>20</max-pool-size>
<!-- The time before an unused connection is destroyed -->
<!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
<!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
<idle-timeout-minutes>0</idle-timeout-minutes>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- Whether to check all statements are closed when the connection is returned to the pool,
this is a debugging feature that should be turned off in production -->
<track-statements/>
<!-- Use the getConnection(user, pw) for logins
<application-managed-security/>
-->
<!-- Use the security domain defined in conf/login-config.xml -->
<security-domain>HsqlDbRealm</security-domain>
<!-- Use the security domain defined in conf/login-config.xml or the
getConnection(user, pw) for logins. The security domain takes precedence.
<security-domain-and-application>HsqlDbRealm</security-domain-and-application>
-->
<!-- HSQL DB benefits from prepared statement caching -->
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
<!-- When using in-process (standalone) mode -->
<depends>jboss:service=Hypersonic,database=localDB</depends>
<!-- Uncomment when using hsqldb in server mode
<depends>jboss:service=Hypersonic</depends>
-->