2017-08-11 62 views
1

我想創建一個使用Java,澤西島和camunda lib構建bpmn項目的Web REST服務。java.lang.NoClassDefFoundError:org/camunda/bpm/model/bpmn/instance/FlowNode

我的項目通過HTML表單頁面從用戶處獲取兩個文件,並且應該在特定的目標上從它們創建兩個aut文件。

我在服務器上傳文件時出現了這個錯誤。

HTTP Status 500 – Internal Server Error 

Type Exception Report 

Message java.lang.NoClassDefFoundError: org/camunda/bpm/model/bpmn/instance/FlowNode 

Description The server encountered an unexpected condition that prevented it from fulfilling the request. 

Exception 

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/camunda/bpm/model/bpmn/instance/FlowNode 
    com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 

Root Cause 

java.lang.NoClassDefFoundError: org/camunda/bpm/model/bpmn/instance/FlowNode 
    com.javacodegeeks.enterprise.rest.jersey.JerseyFileUpload.uploadFile(JerseyFileUpload.java:66) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:498) 
    com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
    com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) 
    com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
    com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
    com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
    com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
    com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
    com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
    com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 

Root Cause 

java.lang.ClassNotFoundException: org.camunda.bpm.model.bpmn.instance.FlowNode 
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1269) 
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104) 
    com.javacodegeeks.enterprise.rest.jersey.JerseyFileUpload.uploadFile(JerseyFileUpload.java:66) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:498) 
    com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
    com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) 
    com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
    com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
    com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
    com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
    com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
    com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
    com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
    com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 

Note The full stack trace of the root cause is available in the server logs. 

該進程創建0字節的.aut文件。

爲什麼我得到這個錯誤?我在我的項目中添加包含flownode類的庫。爲什麼它不工作?

編輯:我使用Tomcat作爲服務器在Eclipse IDE上運行它。我已經在我的java構建路徑庫的WEB-INF文件夾中添加了所有的lib。

+0

您使用的是maven嗎?你如何打包你的代碼?這是罐子,戰爭還是耳朵?如果是戰爭,WEB-INF/lib文件夾中是否存在這些庫? – phoenixSid

+0

是的,我使用maven項目,eclipse和tomcat。是的,這些lib都在web-inf文件夾中! – Dario

+0

你是在eclipse中運行還是在tomcat中單獨部署戰爭? 您是否嘗試刪除爆炸戰爭並再次啓動服務器? – phoenixSid

回答

1

簡單:此異常告訴你,在運行運行在JVM你的代碼做發現類。

不要緊,你的構建或IDE項目設置包括該依賴關係。

您必須確保運行您的Jersey服務器的JVM的類路徑安裝程序也包含庫。