java.lang.NoClassDefFoundError:org/apache/catalina/LifecycleException
我正在从事一个项目,该项目希望将tomcat嵌入java web应用程序中。 我希望将此应用程序转换为JavaWebStart,以便可以部署它,任何下载该应用程序的人都可以在嵌入式服务器上使用该应用程序,而无需下载tomcat。 我面临的问题是,当我在eclipse上运行代码时,代码运行得非常完美,但当我将其转换为可下载文件时,该文件在开始时显示了我在标题中提到的错误。 我以前有一个错误说。。。java.lang.NoClassDefFoundError:org/apache/catalina/Context 我通过使用Catalina jar文件作为jnlp文件中的资源href之一修复了这个问题。 据我所知,这个生命周期异常是Catalina.jar的一部分。 请帮我解决我的错误,或者至少为我指出正确的解决方向。 我正在EclipseIDE上使用maven项目运行代码。 谢谢 pom.xmljava.lang.NoClassDefFoundError:org/apache/catalina/LifecycleException,java,eclipse,maven,jnlp,embedded-tomcat-8,Java,Eclipse,Maven,Jnlp,Embedded Tomcat 8,我正在从事一个项目,该项目希望将tomcat嵌入java web应用程序中。 我希望将此应用程序转换为JavaWebStart,以便可以部署它,任何下载该应用程序的人都可以在嵌入式服务器上使用该应用程序,而无需下载tomcat。 我面临的问题是,当我在eclipse上运行代码时,代码运行得非常完美,但当我将其转换为可下载文件时,该文件在开始时显示了我在标题中提到的错误。 我以前有一个错误说。。。java.lang.NoClassDefFoundError:org/apache/catalina/
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tom1</groupId>
<artifactId>cat1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cat1 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
</dependencies>
<build>
<finalName>cat1</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.tom1.cat1.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>${tomcat.port}</port>
<path>/</path>
</configuration>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>/</path>
<port>${tomcat.port}</port>
<attachArtifactClassifierType>war</attachArtifactClassifierType>
<mainClass>org.apache.tomcat.maven.runner.Tomcat8RunnerCli</mainClass>
<extraDependencies>
<extraDependency>
<groupId>com.nitorcreations</groupId>
<artifactId>tomcat8-war-runner</artifactId>
<version>1.0</version>
</extraDependency>
</extraDependencies>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-util</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-coyote</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-api</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper-el</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-el-api</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-tribes</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-ha</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-log4j</artifactId>
<version>${tomcat.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<warRunDependencies>
<warRunDependency>
<dependency>
<groupId>com.tom1</groupId>
<artifactId>cat1</artifactId>
<version>4</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.3-SNAPSHOT</version>
<type>maven-plugin</type>
</dependency>
<contextPath>/</contextPath>
</warRunDependency>
</warRunDependencies>
<enableNaming>true</enableNaming>
<extraDependencies>
<extraDependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.1.3.1</version>
</extraDependency>
<extraDependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</extraDependency>
</extraDependencies>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<tomcat.version>8.0.48</tomcat.version>
</properties>
</project>
4.0.0
com.tom1
第一类
战争
0.0.1-快照
cat1 Maven Webapp
http://maven.apache.org
朱尼特
朱尼特
3.8.1
测试
org.apache.tomcat.embed
tomcat嵌入式内核
${tomcat.version}
org.apache.tomcat.embed
汤姆卡特·贾斯珀
${tomcat.version}
org.apache.tomcat.embed
tomcat嵌入式日志
${tomcat.version}
第一类
org.apache.maven.plugins
maven jar插件
com.tom1.cat1.App
org.apache.tomcat.maven
tomcat7 maven插件
2
${tomcat.port}
/
雄猫赛跑
仅限执行战争
包裹
/
${tomcat.port}
战争
org.apache.tomcat.maven.runner.Tomcat8RunnerCli
com.nitorcreations
tomcat8战跑者
1
org.apache.tomcat.embed
tomcat嵌入式内核
${tomcat.version}
org.apache.tomcat
tomcat util
${tomcat.version}
org.apache.tomcat
雄猫郊狼
${tomcat.version}
org.apache.tomcat
TomcatAPI
${tomcat.version}
org.apache.tomcat
TomcatJDBC
${tomcat.version}
org.apache.tomcat
TomcatDBCP
${tomcat.version}
org.apache.tomcat
TomcatServletAPI
${tomcat.version}
org.apache.tomcat
tomcat jsp api
${tomcat.version}
org.apache.tomcat
雄猫贾斯珀
${tomcat.version}
org.apache.tomcat
雄猫贾斯珀
${tomcat.version}
org.apache.tomcat
tomcat el api
${tomcat.version}
org.apache.tomcat
卡塔琳娜雄猫
${tomcat.version}
org.apache.tomcat
雄猫部落
${tomcat.version}
org.apache.tomcat
卡塔琳娜山猫
${tomcat.version}
org.apache.tomcat
tomcat注释api
${tomcat.version}
org.apache.tomcat
雄猫朱莉
${tomcat.version}
org.apache.tomcat.embed
tomcat嵌入式日志
${tomcat.version}
org.apache.tomcat.embed
tomcat-embed-logging-log4j
${tomcat.version}
org.apache.tomcat.maven
tomcat7 maven插件
2.2
雄猫赛跑
仅限执行战争
包裹
com.tom1
第一类
4.
战争
org.apache.tomcat.maven
tomcat7 maven插件
2.3-2
maven插件
/
真的
org.apache.derby
德比
10.1.3.1
javax.mail
邮件
1.4
8.0.48
JNLP文件
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
codebase="http://localhost:8080/TCApp"
href="http://localhost:8080/TCApp/SO.jnlp">
<information>
<title>Hello World</title>
<vendor>Noel Joseph</vendor>
<homepage href="http://localhost:8080/TCApp/display.html" />
<description> Hello World</description>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.4+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="SO.jar" />
<jar href="catalina-6.0.29.jar" />
<jar href="catalina-ha-6.0.29.jar" />
</resources>
<application-desc main-class="com.N.VJ.App"/>
</jnlp>
你好,世界
诺埃尔·约瑟夫
你好,世界
嘿,伙计们修复了错误。
受到新错误的欢迎,但已将其修复为。
很奇怪为什么我以前没有考虑过。
因此,我所做的就是添加jar href=“任何需要的jar”。
因此,根据我对eclipse中jar文件打包的理解,它并没有真正打包所有必需的jar,或者它确实打包了所有必需的jar,但它们在运行时并不有用,因为在主类调用必需的jar时,它们丢失了。
通过在href中添加这些必要的jar,它们将在运行时被调用,TADA将解决您的问题
我的JNLP文件最后看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
codebase="http://localhost:8080/TCApp"
href="http://localhost:8080/TCApp/SO.jnlp">
<information>
<title>Hello World</title>
<vendor>Noel Joseph</vendor>
<homepage href="http://localhost:8080/TCApp/display.html" />
<description> Hello World</description>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.4+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="New3.jar" main="true"/>
<jar href="tomcat-catalina-9.0.10.jar" />
<jar href="javax.servlet.jar" />
<jar href="javax.servlet-api-3.0.1.jar" />
<jar href="tomcat-util-9.0.10.jar" />
<jar href="tomcat-util-scan-9.0.10.jar" />
<jar href="tomcat-juli-9.0.10.jar" />
<jar href="tomcat-coyote-9.0.10.jar" />
<jar href="tomcat-api-9.0.10.jar" />
<jar href="tomcat-jni-9.0.10.jar" />
<jar href="tomcat-jsp-api-9.0.10.jar" />
<jar href="commons-logging-1.2.jar" />
<property name="sun.java2d.noddraw"
value="true"/>
</resources>
<application-desc main-class="com.NO.JO.App"/>
</jnlp>
你好,世界
诺埃尔·约瑟夫
你好,世界
感谢分享您的解决方案,欢迎使用SO!。一条评论:请注意,JavaWebStart已被弃用,并将在未来的java版本中删除。所以这只能是一个临时解决方案…我在一家公司实习,这是我在这里的项目,所以对我来说真的不重要。谢谢你的信息,不过我会让他们知道的。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
codebase="http://localhost:8080/TCApp"
href="http://localhost:8080/TCApp/SO.jnlp">
<information>
<title>Hello World</title>
<vendor>Noel Joseph</vendor>
<homepage href="http://localhost:8080/TCApp/display.html" />
<description> Hello World</description>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.4+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="New3.jar" main="true"/>
<jar href="tomcat-catalina-9.0.10.jar" />
<jar href="javax.servlet.jar" />
<jar href="javax.servlet-api-3.0.1.jar" />
<jar href="tomcat-util-9.0.10.jar" />
<jar href="tomcat-util-scan-9.0.10.jar" />
<jar href="tomcat-juli-9.0.10.jar" />
<jar href="tomcat-coyote-9.0.10.jar" />
<jar href="tomcat-api-9.0.10.jar" />
<jar href="tomcat-jni-9.0.10.jar" />
<jar href="tomcat-jsp-api-9.0.10.jar" />
<jar href="commons-logging-1.2.jar" />
<property name="sun.java2d.noddraw"
value="true"/>
</resources>
<application-desc main-class="com.NO.JO.App"/>
</jnlp>