本文将带您了解关于升级到Tomcat8时发生ClassNotFoundException的新内容,同时我们还将为您解释tomcat升级到高版本后起不来的相关知识,另外,我们还将为您提供关于Caused
本文将带您了解关于升级到Tomcat 8时发生ClassNotFoundException的新内容,同时我们还将为您解释tomcat升级到高版本后起不来的相关知识,另外,我们还将为您提供关于Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassNotFoundException、ClassNotFoundException: Cannot find class: GeneratorConfig、ClassNotFoundException: JspException的实用信息。
本文目录一览:- 升级到Tomcat 8时发生ClassNotFoundException(tomcat升级到高版本后起不来)
- Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException
- ClassNotFoundException
- ClassNotFoundException: Cannot find class: GeneratorConfig
- ClassNotFoundException: JspException
升级到Tomcat 8时发生ClassNotFoundException(tomcat升级到高版本后起不来)
我最近将NetBeans
IDE从v7.3升级到了v8,突然之间,我的应用程序在连接到DB时在服务器启动时抛出了异常。这两个IDE版本之间的唯一区别是,后者版本使用的是Tomcat
8。
异常日志:
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory] at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:82) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) at org.apache.naming.NamingContext.lookup(NamingContext.java:841) at org.apache.naming.NamingContext.lookup(NamingContext.java:152) at org.apache.naming.NamingContext.lookup(NamingContext.java:829) at org.apache.naming.NamingContext.lookup(NamingContext.java:152) at org.apache.naming.NamingContext.lookup(NamingContext.java:829) at org.apache.naming.NamingContext.lookup(NamingContext.java:152) at org.apache.naming.NamingContext.lookup(NamingContext.java:829) at org.apache.naming.NamingContext.lookup(NamingContext.java:166) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:157) at javax.naming.InitialContext.lookup(InitialContext.java:411) at com.istore.core.listeners.AppContextListener.initdb(AppContextListener.java:44) at com.istore.core.listeners.AppContextListener.contextInitialized(AppContextListener.java:27) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5158) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:579) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428) at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:885) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:343) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1132) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:80) ... 58 more
META-INF / context.xml
<!-- PostgreSQL Datasource --><Resource auth="Container" driverClassName="org.postgresql.Driver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="50" maxIdle="10" maxWait="-1" name="jdbc/mydb" type="javax.sql.DataSource" url="jdbc:postgresql://myorg.corp.net:5432/mydb" username="abc" password="def" />
请指导。
答案1
小编典典在Tomcat 7和Tomcat 8之间,默认工厂的名称已更改。几个属性名称也已更改。这是在Tomcat 8中从DBCP 1.x切换到DBCP
2.x的结果。您需要在META-INF / context.xml文件中执行以下操作:
<!-- PostgreSQL Datasource --><Resource auth="Container" driverClassName="org.postgresql.Driver" factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory" maxTotal="50" maxIdle="10" maxWaitMillis="-1" name="jdbc/mydb" type="javax.sql.DataSource" url="jdbc:postgresql://myorg.corp.net:5432/mydb" username="abc" password="def" />
由于默认情况下将此工厂用于类型的资源,因此javax.sql.DataSource
您可以将所有属性放在一起。其他更改是:
maxActive -> maxTotalmaxWait -> maxWaitMillis
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException
@杨桃兄弟 你好,想跟你请教个问题:
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.2</version> <!-- <version>2.2.0</version>--> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.7.2</version> </dependency>
我pom 文件里的,一直报这个错
ClassNotFoundException
代码报错:
java.lang.ClassNotFoundException: com.tujia.core.filter.SecurityFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
找不到类,但是,在我的代码中,并没有这个类的引用。
用 eclipse 的全局搜索,发现,在 web.xml 中,有注释,
<filter><!-- com.tujia.core.filter.SecurityFilter -->
<filter-name>securityFilter</filter-name>
<filter-class>com.tujia.corelogin.filter.SecurityFilter</filter-class>
<init-param>
<param-name>ignores</param-name><!-- /tbk, -->
<param-value>/app/appNavs,/app/download,/tulogin,/tulogout,/static,/noauthority,/img/select</param-value>
</init-param>
<!-- <init-param>
<param-name>checks</param-name>/tbk,
<param-value>/,/app/,/video/</param-value>
</init-param> -->
</filter>
<filter-mapping>
<filter-name>securityFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
这句话是我已经注释掉的,但是,在 xml 中,并不是不编译,而是编译不执行,所以,会报错 classnotfound.
<!-- com.tujia.core.filter.SecurityFilter -->
类似的这种问题,在 jsp,xml 中,会有很多,因为在这些文件中,注释并不代表不编译。希望以后注意一下。
ClassNotFoundException: Cannot find class: GeneratorConfig
org.apache.ibatis.type.TypeException: Could not resolve type alias ''GeneratorConfig''. Cause: java.lang.ClassNotFoundException: Cannot find class: GeneratorConfig
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:120)
at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:149)
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:116)
... 135 common frames omitted
Caused by: java.lang.ClassNotFoundException: Cannot find class: GeneratorConfig
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:200)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
at org.apache.ibatis.io.Resources.classForName(Resources.java:261)
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:116)
... 137 common frames omitted
ClassNotFoundException: JspException
给这个问题耗上了, 我一定要把罪魁祸首找不来 找不出来不下班!!!java.lang.ClassNotFoundException: JspException org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) java.lang.Class.getDeclaredMethods0(Native Method) java.lang.Class.privateGetDeclaredMethods(Class.java:2427) java.lang.Class.getDeclaredMethods(Class.java:1791) java.beans.Introspector$1.run(Introspector.java:1287) java.security.AccessController.doPrivileged(Native Method) java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285) java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151) java.beans.Introspector.getBeanInfo(Introspector.java:402) java.beans.Introspector.getBeanInfo(Introspector.java:168) java.beans.Introspector.getBeanInfo(Introspector.java:229) java.beans.Introspector.<init>(Introspector.java:383) java.beans.Introspector.getBeanInfo(Introspector.java:168) org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3943) org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2209) org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1640) org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434) org.apache.jasper.compiler.Node$Root.accept(Node.java:475) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) org.apache.jasper.compiler.Generator.generate(Generator.java:3489) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) clap.bnLog.filter.BnLogFilter.doFilter(BnLogFilter.java:34) clap.authority.filter.FunOrgAuFilterServlet.doFilter(FunOrgAuFilterServlet.java:33) clap.authority.filter.FilterServlet.doFilter(FilterServlet.java:91) clap.frames.i18n.filter.LocalFilter.doFilter(LocalFilter.java:71) clap.authority.xss.XSSSecurityFilter.doFilter(XSSSecurityFilter.java:68) clap.frames.web.SetEncodingFilter.doFilter(SetEncodingFilter.java:33)
===== 19:44 更新 =====
问题终于解决了,但是为什么导致这样的问题还是没能找出来。不过发现这个问题还是因为个人的操作失误导致的, 自作自受啊, 下不为例以后就张姿势了。
说一下我的环境和编译、部署的流程:
环境:
项目没有使用ant之类的编译工具,运行项目也没有使用IDE内置的容器运行。
而是使用IDE编译代码,再单独启动容器跑程序。
而问题就出现在编译阶段,因为在IDE中classpath有问题,导致IDE编译没有正确完成,当IDE classpath问题解决了,再启动容器没有报错,也可以正常访问页面。结论就是编译的代码不完整,而不是缺少jar文件或者冲突。一切都是自己咎由自取,活该!
为什么代码编译不完整运行时抛这么奇怪的错误,这个结果还没有弄清楚明白,估计这个要看容器的类加载时肿么了一个回事了,暂且不说了,以后有空估计也不会去看了。如果哪位无聊可以研究下。
终于搞定了,可以继续推进工作了。撤~~~
今天关于升级到Tomcat 8时发生ClassNotFoundException和tomcat升级到高版本后起不来的分享就到这里,希望大家有所收获,若想了解更多关于Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassNotFoundException、ClassNotFoundException: Cannot find class: GeneratorConfig、ClassNotFoundException: JspException等相关知识,可以在本站进行查询。
本文标签: