How to use classes from one module in other? There are two java-modules common and webapp with java-classes, so I need use in webapp module classes from common In common I build war file and there is my pom.xml
<build>
<finalName>SBRiskDataSvcs</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<attachClasses>true</attachClasses>
<classesClassifier>classes</classesClassifier>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build>
Webapp module use common like dependency like this
<dependency>
<groupId>ru.sberbank.rs.SBDataServices</groupId>
<artifactId>SBRiskDataSvcs-common</artifactId>
<version>${project.version}</version>
<classifier>classes</classifier>
</dependency>
But, when try to start application, there is error message
Caused by: java.io.IOException: invalid constant type: 18
the full logs are
[1/23/20 18:19:33:605 MSK] 000000fc SystemOut O WARN: Please see http://www.slf4j.org/codes.html#release for an explanation. [1/23/20 18:19:33:617 MSK] 000000fc CompositionUn E WSVR0194E: Composition unit WebSphere:cuname=MyApplication in BLA WebSphere:blaname=MyApplication failed to start. [1/23/20 18:19:33:631 MSK] 000000ba AdminHelper A ADMN1009I: An attempt is made to start the MyApplication application. [1/23/20 18:19:33:643 MSK] 000000ba CompositionUn A WSVR0190I: Starting composition unit WebSphere:cuname=MyApplication in BLA WebSphere:blaname=MyApplication. [1/23/20 18:19:39:417 MSK] 000000ba ApplicationMg A WSVR0200I: Starting application: MyApplication [1/23/20 18:19:39:420 MSK] 000000ba ApplicationMg A WSVR0204I: Application: MyApplication Application build level: Unknown [1/23/20 18:19:39:596 MSK] 000000ba SibMessage I [:] CWSID0017I: Configuration reload is starting for bus RSKbus. [1/23/20 18:19:39:606 MSK] 000000ba SibMessage I [:] CWSID0018I: Configuration reload is complete for bus RSKbus. [1/23/20 18:19:39:611 MSK] 000000ba SibMessage I [:] CWSID0019I: Configuration reload is starting for messaging engine Cluster1.000-RSKbus. [1/23/20 18:19:39:615 MSK] 000000ba SibMessage
I [:] CWSID0020I: Configuration reload is complete for messaging engine Cluster1.000-RSKbus. [1/23/20 18:19:41:368 MSK] 000000ba webapp I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Loading Web Module: MyApplication-webapp-CURRENT.war. [1/23/20 18:19:41:391 MSK] 000000ba WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Will create a new session context for application key default_host/MyApplication [1/23/20 18:19:52:694 MSK] 000000ba webapp I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0292I: Servlet Message - [MyApplication#MyApplication-webapp-CURRENT.war]:.1 Spring WebApplicationInitializers detected on classpath [1/23/20 18:19:52:699 MSK] 000000ba SystemOut O [2020-01-23 18:19:52.698] INFO config.WebAppInitalizer WebApp launching.. [1/23/20 18:19:52:826 MSK] 000000ba SystemOut O [2020-01-23 18:19:52.826] INFO config.WebAppInitalizer WebApp started.. [1/23/20 18:19:52:827 MSK] 000000ba webapp I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0292I: Servlet Message - [MyApplication#MyApplication-webapp-CURRENT.war]:.Initializing Spring root WebApplicationContext [1/23/20 18:19:52:828 MSK] 000000ba SystemOut O [2020-01-23 18:19:52.828] INFO pringframework.web.context.ContextLoader Root WebApplicationContext: initialization started [1/23/20 18:19:52:869 MSK] 000000ba SystemOut
O [2020-01-23 18:19:52.869] INFO rt.AnnotationConfigWebApplicationContext Refreshing Root WebApplicationContext: startup date [Thu Jan 23 18:19:52 MSK 2020]; root of context hierarchy [1/23/20 18:19:53:020 MSK] 000000ba SystemOut O [2020-01-23 18:19:53.020] INFO rt.AnnotationConfigWebApplicationContext Registering annotated classes: [class mypackage.web.WebConfig,class mypackage.service.ServiceConfig,class mypackage.persistence.PersistenceConfig] [1/23/20 18:19:53:782 MSK] 000000ba SystemOut O [2020-01-23 18:19:53.782] INFO ctory.support.DefaultListableBeanFactory Overriding bean definition for bean 'requestMappingHandlerMapping' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration; factoryMethodName=requestMappingHandlerMapping; initMethodName=null; destroyMethodName=(inferred); defined in org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=webConfig; factoryMethodName=requestMappingHandlerMapping; initMethodName=null; destroyMethodName=(inferred); defined in mypackage.web.WebConfig] [1/23/20 18:19:54:496 MSK] 000000ba SystemOut O [2020-01-23 18:19:54.496] INFO ion.AutowiredAnnotationBeanPostProcessor JSR-330 'javax.inject.Inject' annotation found and supported for autowiring [1/23/20 18:19:55:025 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.025] INFO eConfig$$EnhancerBySpringCGLIB$$a25b9480 Entity Manager configured.. [1/23/20 18:19:55:101 MSK] 000000ba SystemOut
O [2020-01-23 18:19:55.101] INFO a.LocalContainerEntityManagerFactoryBean Building JPA container EntityManagerFactory for persistence unit 'default' [1/23/20 18:19:55:387 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.387] INFO org.hibernate.annotations.common.Version HCANN000001: Hibernate Commons Annotations {4.0.1.Final} [1/23/20 18:19:55:403 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.403] INFO org.hibernate.Version HHH000412: Hibernate Core {4.0.1.Final} [1/23/20 18:19:55:409 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.409] INFO org.hibernate.cfg.Environment HHH000206: hibernate.properties not found [1/23/20 18:19:55:413 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.413] INFO org.hibernate.cfg.Environment HHH000021: Bytecode provider name : javassist [1/23/20 18:19:55:478 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.478] INFO org.hibernate.ejb.Ejb3Configuration
HHH000204: Processing PersistenceUnitInfo [ name: default ...] [1/23/20 18:19:55:535 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.535] WARN rt.AnnotationConfigWebApplicationContext Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in mypackage.persistence.PersistenceConfig: Invocation of init method failed; nested exception is java.lang.RuntimeException: error trying to scan : file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar [1/23/20 18:19:55:546 MSK] 000000ba SystemOut O [2020-01-23 18:19:55.540] ERROR pringframework.web.context.ContextLoader Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in mypackage.persistence.PersistenceConfig: Invocation of init method failed; nested exception is java.lang.RuntimeException: error trying to scan : file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) Caused by: java.lang.RuntimeException: error trying to scan <jar-file>: file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:854)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:596)
at org.springframework.orm.jpa.vendor.SpringHibernateEjbPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateEjbPersistenceProvider.java:50)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
... 70 more Caused by: java.lang.RuntimeException: Error while reading file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:193)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:503)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:851)
... 78 more Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1090)
at javassist.bytecode.ConstPool.read(ConstPool.java:1033)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:149)
at javassist.bytecode.ClassFile.read(ClassFile.java:737)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:108)
at org.hibernate.ejb.packaging.AbstractJarVisitor.checkAnnotationMatching(AbstractJarVisitor.java:245)
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:190)
... 80 more [1/23/20 18:19:55:547 MSK] 000000ba webapp E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated SRVE0283E: Exception caught while initializing context: {0}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in mypackage.persistence.PersistenceConfig: Invocation of init method failed; nested exception is java.lang.RuntimeException: error trying to scan <jar-file>: file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) Caused by: java.lang.RuntimeException: error trying to scan <jar-file>: file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:854)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:596)
at org.springframework.orm.jpa.vendor.SpringHibernateEjbPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateEjbPersistenceProvider.java:50)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:360)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:382)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:371)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
... 70 more Caused by: java.lang.RuntimeException: Error while reading file:/opt/IBM/WebSphere/AppServer/profiles/Node01/installedApps/Cell01/MyApplication.ear/MyApplication-webapp-CURRENT.war/WEB-INF/lib/MyApplication-common-8.0.5-classes.jar
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:193)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:503)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:851)
... 78 more Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1090)
at javassist.bytecode.ConstPool.read(ConstPool.java:1033)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:149)
at javassist.bytecode.ClassFile.read(ClassFile.java:737)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:108)
at org.hibernate.ejb.packaging.AbstractJarVisitor.checkAnnotationMatching(AbstractJarVisitor.java:245)
at org.hibernate.ejb.packaging.AbstractJarVisitor.executeJavaElementFilter(AbstractJarVisitor.java:211)
at org.hibernate.ejb.packaging.AbstractJarVisitor.addElement(AbstractJarVisitor.java:172)
at org.hibernate.ejb.packaging.FileZippedJarVisitor.doProcessElements(FileZippedJarVisitor.java:123)
at org.hibernate.ejb.packaging.AbstractJarVisitor.getMatchingEntries(AbstractJarVisitor.java:148)
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:190)
... 80 more
[1/23/20 18:19:55:554 MSK] 000000ba webapp I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0292I: Servlet Message - [MyApplication#MyApplication-webapp-CURRENT.war]:.Closing Spring root WebApplicationContext
PersistenceConfig.class
@Configuration
@EnableTransactionManagement
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = {"mypackage.persistence"})
@ComponentScan(basePackages = {"mypackage.persistence", "persistence"})
public class PersistenceConfig {
private static final String[] PACKAGE_WITH_JPA_ENTITIES = {
"mypackage.persistence",
"persistence"
};
private final Logger log = Logger.getLogger(getClass());
@Bean
@Resource(type = DataSource.class, lookup = "jdbc/DATA", name = "jdbc/DATA")
public DataSource dataSource() {
final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
dsLookup.setResourceRef(true);
DataSource dataSource = dsLookup.getDataSource("java:comp/env/jdbc/DATA");
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
entityManager.setDataSource(dataSource());
entityManager.setPackagesToScan(PACKAGE_WITH_JPA_ENTITIES);
entityManager.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
entityManager.setJpaProperties(getHibernateProperties());
log.info("Entity Manager configured..");
return entityManager;
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory);
return transactionManager;
}
private Properties getHibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.OracleDialect");
properties.put("hibernate.show_sql", "true");
properties.put("hibernate.hbm2ddl.auto", "none");
properties.put("org.hibernate.envers.do_not_audit_optimistic_locking_field", false);
properties.put("verifyServerCertificate", false);
properties.put("useSSL", false);
properties.put("requireSSL", false);
properties.put("useLegacyDatetimeCode", false);
properties.put("useUnicode", "yes");
properties.put("characterEncoding", "UTF-8");
properties.put("serverTimezone", "UTC");
properties.put("useJDBCCompliantTimezoneShift", true);
return properties;
}
}
this class located in webapp module.