我们使用Axis2框架(遗留系统)开发Web服务。使用jdbc它工作正常,但我需要使用它与hibernate。 我尝试了两种方法:
<parameter name="ServiceTCCL">composite</parameter>
在第一种情况下,我无法访问hibernate.cfg.xml
java.lang.RuntimeException: java.lang.RuntimeException: org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
在第二种情况下,我失去了对JNDII的访问,似乎失去了容器范围(jboss)jndi上下文。
java.lang.RuntimeException: javax.naming.NameNotFoundException: UserTransaction not bound
由于
答案 0 :(得分:0)
实际上,我用我的hibernate SessionFactoryUtils
中的以下代码修复了这个问题 // Create the initial SessionFactory from the default configuration files
log.debug("Initializing Hibernate");
AxisService axisService = MessageContext.getCurrentMessageContext().getAxisService();
ClassLoader serviceClassLoader = axisService.getClassLoader();
URL configURL = serviceClassLoader.getResource("hibernate.cfg.xml");
configuration = new AnnotationConfiguration();
// Use annotations: configuration = new AnnotationConfiguration();
// Read hibernate.cfg.xml (has to be present)
configuration.configure(configURL);
// Build and store (either in JNDI or static variable)
rebuildSessionFactory(configuration);
所以,我正在使用我的WebContent / WEB-INF / classes中的hibernate.cfg.xml以及EAR中的所有库。