5

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)
SkyWalker
  • 28,384
  • 14
  • 74
  • 132
BruceWayne
  • 3,286
  • 4
  • 25
  • 35
  • It's clearly reporting a jdk mismatch: `Unsupported major.minor version 52.0`. 52 is Java 8. https://stackoverflow.com/questions/22489398/unsupported-major-minor-version-52-0 – Roddy of the Frozen Peas Jul 12 '17 at 22:40
  • Possible duplicate of [Unsupported major.minor version 52.0](https://stackoverflow.com/questions/22489398/unsupported-major-minor-version-52-0) – Roddy of the Frozen Peas Jul 12 '17 at 22:40
  • Updated the java versions list in the post – BruceWayne Jul 13 '17 at 04:39
  • 1
    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 Jul 13 '17 at 05:51
  • So, should i install Java 8 ..? – BruceWayne Jul 13 '17 at 06:12
  • @BruceWayne, Please go through this tutorial. http://mswiderski.blogspot.com/2015/10/installing-kie-server-and-workbench-on.html . It may help you. – SkyWalker Jul 19 '17 at 13:22
  • Yes, you should use Java 8 and I don't know if you are missing some steps that you can find in the above link provided by @SkyWalker, also the version that you are using of Kie Workbench was released for tomcat 8 BUT should works without issues in tomcat 8.5 too. Follow the guide and let us know how it goes – Bryan Acuña Núñez Jul 19 '17 at 20:58

2 Answers2

1

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

spi
  • 1,673
  • 13
  • 19
0

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.

Anshul Sharma
  • 3,432
  • 1
  • 12
  • 17
  • 2
    Its not about compile. Final version is already available over drools website. While starting the drools service over tomcat with downloaded `war`, getting the error. – BruceWayne Jul 17 '17 at 06:44