5
votes

While starting the drools service over tomcat getting below error.

12-Jul-2017 11:16:42.203 INFO [http-nio-8090-exec-1] org.apache.catalina.core.ApplicationContext.log HTMLManager: start: Starting web application '/kie-drools-wb-7.0.0.Final-tomcat8'
12-Jul-2017 11:17:07.252 SEVERE [http-nio-8090-exec-1] org.apache.catalina.core.ApplicationContext.log FAIL - Application at context path [/kie-drools-wb-7.0.0.Final-tomcat8] could not be started
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/kie-drools-wb-7.0.0.Final-tomcat8]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1307)
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:665)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:211)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:595)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.ServiceConfigurationError: Error instantiating :org.apache.deltaspike.core.api.provider.BeanManagerProvider
    at org.jboss.weld.util.ServiceLoader.createInstance(ServiceLoader.java:310)
    at org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:246)
    at org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:214)
    at org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:182)
    at org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:162)
    at org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:288)
    at org.jboss.weld.util.collections.ImmutableSet$BuilderImpl.addAll(ImmutableSet.java:150)
    at org.jboss.weld.environment.servlet.WeldServletLifecycle.createDeployment(WeldServletLifecycle.java:286)
    at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:159)
    at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:61)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 33 more
Caused by: java.lang.UnsupportedClassVersionError: javax/inject/Provider : Unsupported major.minor version 52.0 (unable to load class [javax.inject.Provider]) (unable to load class [javax.enterprise.inject.Instance]) (unable to load class [javax.enterprise.inject.spi.CDI])
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2280)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1254)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.deltaspike.core.util.ClassUtils.loadClassForName(ClassUtils.java:147)
    at org.apache.deltaspike.core.util.ClassUtils.tryToLoadClassForName(ClassUtils.java:127)
    at org.apache.deltaspike.core.api.provider.BeanManagerProvider.<clinit>(BeanManagerProvider.java:73)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.jboss.weld.util.ServiceLoader.createInstance(ServiceLoader.java:308)
    ... 44 more

My Environment details:

i) CentOS 7.2,

ii) jdk1.7.0_67,

iii) apache-tomcat-8.5.16,

iv) kie-drools-wb-7.0.0.Final-tomcat8.war

Edit 1:

There is no Java 8 in my server

[root@hostname ~]# sudo find / -type f -name java -print 2>/dev/null | xargs -i echo {} -version | bash
bash: line 1: /var/lib/alternatives/java: Permission denied
java version "1.7.0_141"
OpenJDK Runtime Environment (rhel-2.6.10.1.el7_3-x86_64 u141-b02)
OpenJDK 64-Bit Server VM (build 24.141-b02, mixed mode)
java version "1.7.0_141"
OpenJDK Runtime Environment (rhel-2.6.10.1.el7_3-x86_64 u141-b02)
OpenJDK 64-Bit Server VM (build 24.141-b02, mixed mode)
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
2
It's clearly reporting a jdk mismatch: Unsupported major.minor version 52.0. 52 is Java 8. stackoverflow.com/questions/22489398/…Roddy of the Frozen Peas
Updated the java versions list in the postBruceWayne
There's no Java 8 on your server, but your code is compiled with it and is complaining that you have an incompatible jdk.Roddy of the Frozen Peas
So, should i install Java 8 ..?BruceWayne

2 Answers

1
votes

You need to either:

1) change your dependencies list to reference only JDK 1.7 compatible libraries

2) install and run your application using JDK 1.8

The problem, as explained in the message, is that the ClassLoader can not load the class(es) javax.inject.Provider, javax.enterprise.inject.Instance and/or javax.enterprise.inject.spi.CDI since they were compiled with Java 1.8. You can try to find older versions of the corresponding jars, but that may lead to incompatibilities with your actual code. I suggest you to upgrade your production JDK to the latest of the 1.8 branch.

By the way, JDK 1.7 is end of life and should not be used anymore: http://www.oracle.com/technetwork/java/eol-135779.html#Java6-end-public-updates

0
votes

You need to run and compile your application on 1.8 version of Java.

For Eclipse you should do :

1) click on "Window > Preferences", and in the window that appears,left side, under "Java", click on "Installed JREs", click on "Add..." navigate to folder that contains the JDK.

2) Right-click on project and click "Properties", in the window left side, click on "Java Compiler" and uncheck "Use compliance from execution environment on the Java Build Path", that is allows you to choose the list "Compiler compilance level" use the same version whitch you set in the previous step.

for NetBeans IDE, right click on the project and select Properties then go to sources, then you can change the Source/Binary Format to a upperenter image description here JDK version.