gpt4 book ai didi

java - 第一个 tomcat 应用程序 - 'ant install' 错误 "NoClassDefFound"

转载 作者:行者123 更新时间:2023-11-28 22:14:04 26 4
gpt4 key购买 nike

JSP/servlets 是我想学习的东西,所以我着手创建我的第一个 tomcat 应用程序。

我已经完成了 apache 教程 here ,并继续尝试在 tomcat 中安装我的应用程序(具有适当目录结构的简单测试 html 文件)。现在,我意识到希望使用stock是多么的一厢情愿。教程提供的 build.xml 但我需要从某个地方开始,我还不确定如何自己编写一个。我找过示例,但它们似乎没有“安装”目标,也许它们不是 Web 应用程序。

我的项目已构建,但未通过 ant 安装到 tomcat 上。当我尝试“安装”我的控制台输出时...

 ant install
Buildfile: /home/mark/svn/tomcatapp/build.xml
Trying to override old definition of datatype resources

prepare:

compile:
[javac] /home/mark/svn/tomcatapp/build.xml:299: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

install:

BUILD FAILED
/home/mark/svn/tomcatapp/build.xml:375: java.lang.NoClassDefFoundError: org/apache/tomcat/util/buf/B2CConverter
at org.apache.catalina.util.Base64.encode(Base64.java:173)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:204)
at org.apache.catalina.ant.DeployTask.execute(DeployTask.java:211)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
at org.apache.tools.ant.Target.performTasks(Target.java:413)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:811)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.buf.B2CConverter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 19 more

Total time: 0 seconds

为什么找不到类,它不会包含在 tomcat 安装中吗?有一个类似的问题,但我没有尝试使用管理器应用程序,而且我不确定如何编辑类路径——我是否需要编译一个 .java 类来为项目创建一个类?

我确信一个更简单的构建文件就足够了,但我不确定哪些组件是相关的。很抱歉提出可能非常愚蠢的问题。

这是我的 build.xml 文件中的安装目标。

  <target name="install" depends="compile"
description="Install application to servlet container">

<deploy url="${manager.url}"
username="${manager.username}"
password="${manager.password}"
path="${app.path}"
localWar="file://${build.home}"/>

</target>

最佳答案

如果您使用的是示例 build.xml,请更改

localWar="file://${build.home}"

war="${dist.home}/${app.name}-${app.version}.war"

如果您在 ANT_HOME/lib 中有 catalina-ant.jar。尝试将其从此位置移除。

重启tomcat。

这对我有用。

关于java - 第一个 tomcat 应用程序 - 'ant install' 错误 "NoClassDefFound",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11810477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com