参见编辑2
你好,我很难理解为什么会发生这种异常
exception
javax.servlet.ServletException: Error instantiating servlet class controllers.Dashboard
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:662)
root cause
java.lang.RuntimeException: Uncompilable source code - missing method body, or declare abstract
DAO.OrderDAO.(OrderDAO.java:68)
BO.OrderForm.(OrderForm.java:33)
controllers.Dashboard.(Dashboard.java:23)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:662)
起初我在NetBeans 6.9.1中得到了这个并继续搜索并找到了这个
weird bug尝试解决方案后发现没有成功我决定切换IDE,所以我下载了Intellij IDE 9(到目前为止喜欢它)并且仍然有相同的异常!!我的意思是来吧..,只有三个不属于常见库的类是DAO
,BO
和controllers
包,它们是
现在我丢失了,因为代码存在且没有结肠错字或任何东西。
删除了DAO.OrderDAO.java
,BO.OrderForm.java
和controllers.OrderSearch.java
的源代码,因为它的结论是问题是由以下某个类别(其中一个尚未确定)引起的。所以我将IntelliJ调试器配置为在抛出Exception
时停止并且我在查找类ClassNotFoundException
时遇到org.apache.catalina.startup.bootstrap
我不确定这是否与{{1}有关变量,因为我已经下载了apache-tomcat-6.0.30并且我验证了那个麻烦的类。有什么建议吗?
切换回NetBeans 6.9.1添加了一堆库,Runtime异常停止了,但是我再次遇到上述异常和堆栈跟踪,我重申方法体就在那里!! 指向complete trace的链接,密码为1234
答案 0 :(得分:5)
它就在你的堆栈跟踪中
java.lang.RuntimeException: Uncompilable source code - missing method body, or declare abstract
你没有向我们展示所有的代码,所以我不能确切地指出它,但似乎你有一个扩展Abstract类的类,并且你没有提供一个抽象的方法的实现类。因此,正如例外所述,您可以:
你可能想要选项1。
编辑 - 你将不得不深入挖掘调用堆栈。您可能正在使用某种外部API,扩展其中一个抽象类。在这些行的某个地方
at DAO.OrderDAO.(OrderDAO.java:68)
at BO.OrderForm.(OrderForm.java:33)
at controllers.OrderSearch.(OrderSearch.java:43)
答案 1 :(得分:1)
我已经看到了你的代码和你的异常。我将以尽可能连贯的方式回答格式,因此任何事实上的错误都可以被捕获(并且被嘲笑;))
1-本准则可编辑。所以问题显然是构建过程。可能是IDE正在维护过时的缓存。
您是否清理了旧的构建位置?使用maven而不是依赖于IDE构建过程? (特别是Netbeans(让我做100件糟糕的IDE))
您是否也检查了打包文件。 (。罐)。文件大小和时间戳是否有意义。
2-您切换了IDE并获得了相同的异常。 (赞成选择IDEA 9)
这很棘手。您如何将应用程序部署到服务器?你是如何建造它的。
结论:假设构建是最新的并且您正在部署最新版本,您是否检查了服务器运行时中是否存在虚假的旧jar。可能是在tmp或不同名称的某个地方有一个挥之不去的jar文件。我将尝试在另一台服务器上部署。或者重新启动服务器并清理服务器tmp位置。
答案 2 :(得分:0)
java.io.NotSerializableException: DTO.ColorDTO
似乎ColorDTO
没有实现Serializable
和/或
java.lang.RuntimeException: Uncompilable source code - missing method body, or declare abstract
at DAO.OrderDAO.<init>(OrderDAO.java:68)
at BO.OrderForm.<init>(OrderForm.java:33)
OrderDAO
没有实现它应该实现的所有方法,或者使它抽象化,并在子类中提供它的实现,最后一切都应该是具体的。
答案 3 :(得分:0)
大家好抱歉没发布,问题解决了,我只是一直编码,直到有一次我编译并停止抛出异常,顺便说一下我一直使用IntelliJ。我相信这是缓存,但谁知道,也许我们现在永远不会......感谢大家的支持。