Olá,
fiz um projeto onde contém beans e daos e no diretório lib
contém jars (hibernate,anotação,jdbc oracle.hibernate.cfg.xml).
Depois gero um jar desse projeto (exemplo.jar) e crio um projeto
web e adiciono no diretório lib (exemplo.jar).
Mas quando tento acessar um DAO desse jar (exemplo.jar) e pegar
a conexão do banco e tenta ler o arquivo hibernate.cfg.xml não
encontra o arquivo xml ???
Minha duvida como acessar hibernate.cfg.xml de dentro do jar ???o que fazer ???
E dá erro de conexão conforme abaixo???
Alguém já passou por isso ???
-- essa classe está dentro exemplo.jar
public class HibernateUtil {
private static final Logger logger = Logger.getLogger(HibernateUtil.class);
private static final SessionFactory sessionFactory;
private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
static {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}
public static Session openSession() {
if (sessions.get() != null) {
logger.error("Essa sessão está ainda aberta !! ");
// grave, alguem nao fechou uma sessao ja aberta!
}
sessions.set(sessionFactory.openSession());
return sessions.get();
}
public static void closeCurrentSession() {
sessions.get().close();
sessions.set(null);
}
public static Session currentSession() {
return sessions.get();
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
-- esse xml está dentro exemplo.jar
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@122.1.30.211:1521:xxxxx</property>
<property name="hibernate.connection.username">des</property>
<property name="hibernate.connection.password">des</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">180</property>
<property name="hibernate.c3p0.idle_test_period">100</property>
<mapping class="br.com.wwwww.bean.Usuario"/>
</session-factory>
18/09/2009 12:05:03 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.configure()Lorg/hibernate/cfg/AnnotationConfiguration;
at br.com.marisa.core.HibernateUtil.<clinit>(HibernateUtil.java:14)
at br.com.marisanova.controller.UsuarioBean.listaUsuariosPorNome(UsuarioBean.java:126)
at br.com.marisanova.controller.UsuarioBean.pesquisaUsuarios(UsuarioBean.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.com.marisa.app.web.filter.SecurityFirewallFilter.doFilter(SecurityFirewallFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.com.marisa.app.web.filter.SessionGarbageCollectorFilter.doFilter(SessionGarbageCollectorFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)