eclipse中的tomcat 7项目(tomcat 7 project from eclipse)
我有一个在我的prod服务器Tomcat 7中运行良好的基础项目。
我将它导入到Eclipse中,创建了一个tomcat 7服务器来运行它并进行了一些开发。 一切工作正常在eclipse浏览器,但是当我导出的战争文件,并把它放在我的prod服务器上的
webapps
文件夹中,我得到了以下错误:FAIL - Application at context path /art_current could not be started
有关信息,我的Prod tomcat在Java7下,所以我在1.7中更改了我的项目构建路径和java编译器。
我试图在META-INF文件夹中创建一个context.xml文件:
<Context path="/art_current" />
但仍然得到相同的错误
我注意到了一些事情,当我通过Eclipse导出项目时,项目结构发生了变化:
基本项目:
Eclipse导出的项目:
正如我们所见,有一些新的文件夹,特别是出现了一个META-INF文件夹,这是否正常?
也许我做错了什么,但我找不到什么
编辑
这里是我尝试从tomcat管理器启动我的应用程序时得到的日志:
catalina.log
avr. 24, 2017 4:54:01 PM org.apache.catalina.startup.TaglibUriRule body INFOS: TLD skipped. URI: http://cewolf.sourceforge.net/taglib/cewolf.tld is already defined avr. 24, 2017 4:54:01 PM org.apache.catalina.startup.TldConfig execute INFOS: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext startInternal GRAVE: One or more Filters failed to start. Full details will be found in the appropriate container log file avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext startInternal GRAVE: Erreur de démarrage du contexte [/art_current] suite aux erreurs précédentes
localhost.log
avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre exportPathFilter java.lang.UnsupportedClassVersionError: art/servlets/ExportPathFilter : Unsupported major.minor version 52.0 (unable to load class art.servlets.ExportPathFilter) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre AuthFilterAdmin java.lang.UnsupportedClassVersionError: art/servlets/AuthFilterAdmin : Unsupported major.minor version 52.0 (unable to load class art.servlets.AuthFilterAdmin) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre AuthFilter java.lang.UnsupportedClassVersionError: art/servlets/AuthFilter : Unsupported major.minor version 52.0 (unable to load class art.servlets.AuthFilter) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
I have a base project that worked well in my prod server Tomcat 7.
I imported it in Eclipse, created a tomcat 7 server to run it and did some development. Everything work fine in eclipse browser but when i exported the war file and put it in
webapps
folder on my prod server i got the following error :FAIL - Application at context path /art_current could not be started
For information, my Prod tomcat is under Java7 so i changed my project build path and java compiler in 1.7.
I tried to create a context.xml file in META-INF folder:
<Context path="/art_current" />
but still get the same error
I have noticed something, when i export my project by Eclipse, the project structure is altered :
Basic Project :
Exported project from Eclipse :
As we can see, there is some new folders and in particular a META-INF folder appeared, is it normal ?
Maybe i am doing something wrong but i can't find what
EDIT
here are the log i get when i try to start my app from tomcat manager :
catalina.log
avr. 24, 2017 4:54:01 PM org.apache.catalina.startup.TaglibUriRule body INFOS: TLD skipped. URI: http://cewolf.sourceforge.net/taglib/cewolf.tld is already defined avr. 24, 2017 4:54:01 PM org.apache.catalina.startup.TldConfig execute INFOS: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext startInternal GRAVE: One or more Filters failed to start. Full details will be found in the appropriate container log file avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext startInternal GRAVE: Erreur de démarrage du contexte [/art_current] suite aux erreurs précédentes
localhost.log
avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre exportPathFilter java.lang.UnsupportedClassVersionError: art/servlets/ExportPathFilter : Unsupported major.minor version 52.0 (unable to load class art.servlets.ExportPathFilter) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre AuthFilterAdmin java.lang.UnsupportedClassVersionError: art/servlets/AuthFilterAdmin : Unsupported major.minor version 52.0 (unable to load class art.servlets.AuthFilterAdmin) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) avr. 24, 2017 4:54:01 PM org.apache.catalina.core.StandardContext filterStart GRAVE: Exception au démarrage du filtre AuthFilter java.lang.UnsupportedClassVersionError: art/servlets/AuthFilter : Unsupported major.minor version 52.0 (unable to load class art.servlets.AuthFilter) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:690) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:216) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
原文:https://stackoverflow.com/questions/43591005
最满意答案
首先,将
uuid
字段添加到User
模型。 创建迁移。然后,创建数据迁移并添加RunPython操作以调用将数据从旧模型复制到新模型的函数。 就像是:
def copy_uuid(apps, schema_editor): User = apps.get_model("myapp", "User") # loop, or... User.objects.update(uuid=F("userprofile__uuid")) class Migration(migrations.Migration): dependencies = [] operations = [ migrations.RunPython(copy_uuid), ]
迁移并确保一切正常后,您可以在另一次迁移中删除
UserProfile
模型。First, add the
uuid
field to theUser
model. Create a migration.Then, create a data migration and add a RunPython operation to call a function that copies the data from the old to the new models. Something like:
def copy_uuid(apps, schema_editor): User = apps.get_model("myapp", "User") # loop, or... User.objects.update(uuid=F("userprofile__uuid")) class Migration(migrations.Migration): dependencies = [] operations = [ migrations.RunPython(copy_uuid), ]
Once you've migrated and are sure that everything worked, you can delete the
UserProfile
model in another migration.
相关问答
更多-
如果你很乐意任意选择其中的一个副本,我认为以下几点可能会起作用。 也许不是最有效,但很简单,我想你只需要运行一次。 请确认这一切都适用于某些测试数据,以防万一我做了一些愚蠢的事情,因为您将要删除一堆数据。 首先我们找到形成重复的对象组。 对于每个组,(任意)选择一个我们将要保留的“主”。 我们选择的方法是选择pk最低的方法 master_pks = MyModel.objects.values('A', 'B', 'C' ).annotate(Min('pk'), count=Count('pk') ...
-
首先,将uuid字段添加到User模型。 创建迁移。 然后,创建数据迁移并添加RunPython操作以调用将数据从旧模型复制到新模型的函数。 就像是: def copy_uuid(apps, schema_editor): User = apps.get_model("myapp", "User") # loop, or... User.objects.update(uuid=F("userprofile__uuid")) class Migration(migrations.M ...
-
为了独特性检查的目的,Django并没有将NULL视为NULL,因为售票#9039已修复,请参阅: http://code.djangoproject.com/ticket/9039 这里的问题是表单CharField的归一化“空白”值是空字符串,而不是无。 所以如果你把这个字段留空,你会得到一个空的字符串,而不是NULL,存储在数据库中。 在Django和数据库规则下,空字符串等于唯一性检查的空字符串。 您可以通过为Foo提供自己的自定义模型窗体来强制管理界面为空字符串存储NULL,并使用clean_ba ...
-
如何Django模型(How to Django models)[2021-11-21]
如何添加索引(在某些字段上)? 我可以通过Django模型层完成吗? 您可以。 看看Field.db_index选项。 如果我想将一些旧数据迁移到这些新的数据库表/模型中,我是否必须自己编写一些脚本,或者Django是否为模式映射工具提供了模式? Django没有内置工具来进行数据迁移。 要迁移现有数据,您必须编写自定义脚本。 这可能是使用外部迁移工具(如南,见下文),但我还没有尝试过。 最后,如果我需要更改现有Django模型的模式,那么最简单的方法是什么? 我知道这取决于我的架构但是它就像创建一个新列并 ... -
有没有办法检查多个字段的唯一性? 您可以更新模型的save方法,以检查两个IP是否都是唯一的。 像这样的东西: def save(self, *args, **kwargs): if not (userIPs.objects.filter(IP_Address_1=self.IP_Address_1).exists() and userIPs.objects.filter(IP_Address_2=self.IP_Address_2).exists()) super(Model, s ...
-
我们在ShortLink模型中为short_id生成8长度唯一值。 def save(self, *args, **kwargs): if self.short_id is None: self.short_id = self._generate_random_shortid() @classmethod def _generate_random_shortid(cls): length = 8 char = string.ascii_uppercase + str ...
-
您遇到此问题,因为表中至少有两条具有相同slug的记录。 要解决此问题,您可以执行以下步骤 创建数据迁移。 ./manage.py makemigrations
--empty 在迁移文件中,在文件中添加django migration的RunPython操作。 一个例子就像下面的代码片段。 from __future__ import unicode_literals from django.db import models, migrations from django.util ... -
几种方法: 例如,将用户(所有者)传递给表单: forms.py: class StatusForm(forms.Form): def __init__(self, *args, **kwargs): self.user = kwargs.pop('user','') super(StatusForm, self).__init__(*args, **kwargs) self.fields['name'] = forms.CharField(label ...
-
我将显示以下内容,新列是INT而不是CHAR。 相同的区别。 create table t1 ( id int auto_increment primary key, col1 varchar(100) not null ); insert t1(col1) values ('fish'),('apple'),('frog'); alter table t1 add column col2 int; -- OK (all of col2 is now NULL) ALTER TABLE t1 ...
-
现在,您似乎正在尝试使用CharField模拟UUID(通用唯一标识符)。 虽然这种方法可能不会引起太多问题(毕竟它确实提供了(26 + 26 + 10)** 21种可能的组合),但这是一种非常天真的方法。 为什么不使用Django的原生UUIDField ? 这是一个例子: class Organization(models.Model): name = models.CharField(max_length=255) key = models.UUIDField(default=uuid ...