我正在尝试将bacnet4j与JSF结合使用。
我在.java中构建了一个打开/关闭灯的应用程序,但是如果我尝试从JSF页面(它与我的管理bean通信)调用相同的方法,则会给出:
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: com/serotonin/bacnet4j/type/Encodable
root cause
java.lang.NoClassDefFoundError: com/serotonin/bacnet4j/type/Encodable
root cause
java.lang.ClassNotFoundException: com.serotonin.bacnet4j.type.Encodable但是我非常确定这个类在那里,因为如果没有,我的java应用程序就不能工作了,对吧?
你知道为什么会发生这种事吗?
发布于 2012-01-20 22:35:22
包含这个类的JAR文件应该放在webapp的/WEB-INF/lib文件夹中。
普通Java应用程序不使用与Java Web应用程序相同的类路径。对于普通Java应用程序,类路径通常由java命令中的-cp或-classpath参数指定,如果未指定,则由%CLASSPATH%环境变量指定;如果是JAR,则由JAR的/META-INF/MANIFEST.MF中的Class-Path条目指定。对于Java Web应用程序,缺省情况下,类路径包括webapp的/WEB-INF/lib和/WEB-INF/classes文件夹、服务器的/lib (以及更多)文件夹,以及可以在特定于服务器的配置中指定的任何自定义文件夹,例如Tomcat中/conf/catalina.properties的shared.loader属性。
发布于 2012-01-20 22:35:14
NoClassDefFound意味着类在编译时可用,但在运行时不可用。您需要将具有适当类的jar文件添加到war中(或将其添加到应用服务器类路径中)
https://stackoverflow.com/questions/8942680
复制相似问题