Reputation: 393
I'm getting this error when I'm trying to configure my session factory, according to google's results putting javaee-api in provided scope should solve the problem, but it does not :/ In your special case it looks like that javax.validation interface libary is not aviable in the tests. May they are not incuded in javaee-api. If this is the case, then add:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>test</scope>
</dependency>
full pom.xml [code]
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>tele.crm</groupId>
<artifactId>crm-service-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>tele.crm</groupId>
<artifactId>crm-billing-client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
</dependencies>
java Code:
public static void main( String[] args )
{
show();
}
public static void show()
{
Session session = null;
Transaction transaction = null;
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
try
{
System.out.println("aaa"+sessionFactory);
session = sessionFactory.openSession();
System.out.println(session);
transaction = session.beginTransaction();
CrmUserPojo e = new CrmUserPojo();
e.setUserId( "ASDF" );
e.setFirstName("kumar");
session.save( e );
transaction.commit();
}
catch ( Exception ss )
{
transaction.rollback();
}
finally
{
session.close();
}
System.out.println( "Sucesfully Saved" );
}
Exception in thread "main" :
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.np.tele.crm.utils.HibernateUtil.<clinit>(HibernateUtil.java:29)
at com.np.test.Emp.show(Emp.java:25)
at com.np.test.Emp.main(Emp.java:15)
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/validation/Validation
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:115)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:294)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1775)
at com.np.tele.crm.utils.HibernateUtil.<clinit>(HibernateUtil.java:23)
... 2 more
Upvotes: 0
Views: 1616
Reputation: 3807
You must provide an implementation of validation API :
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.2.Final</version>
</dependency>
Your version may vary.
Regards.
Upvotes: 1