1

JSP /サーブレットは私が学びたいものなので、最初のTomcatアプリケーションの作成に着手しました。

ここでapacheチュートリアルを実行し、アプリケーションをtomcat(適切なdir構造を持つ単純なテストhtmlファイル)にインストールしようとしています。今、私はチュートリアルで提供されているストックbuild.xmlを使用することを望んでいるという非常に希望的観測に気づきましたが、どこかから始める必要があります。自分で作成する方法がまだわかりません。例を探しましたが、「インストール」ターゲットがないようです。おそらくWebアプリケーションではありません。

私のプロジェクトはビルドされますが、ant経由でTomcatにインストールされません。コンソール出力を「antinstall」しようとすると...

 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>
4

4 に答える 4

1

サンプルのbuild.xmlを使用している場合は、変更します

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

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

ANT_HOME/libにcatalina-ant.jarがある場合。この場所から削除してみてください。

Tomcatを再起動します。

それは私のために働いた。

于 2012-09-16T11:55:02.587 に答える
1

簡潔な答え:

  • ファイル tomcat-util.jarCATALINA_HOME/libANT_HOME/lib ORにコピーします
  • Ant コマンドを発行するとき-libは、たとえば、そのファイルへのパスを含むオプションを追加します
    ant -lib C:\Tomcat8\lib\tomcat-util.jar install
    (指定されCATALINA_HOMEた へのポイントC:\Tomcat8)

説明:

Tomcat 8.0.36 でも同様の問題が発生しました。エラー メッセージによると、クラスorg.apache.tomcat.util.codec.binary.Base64が見つかりませんでした。チュートリアルのant installコマンドは、デプロイタスクを実行します。これは、Ant の標準タスクではなく、Tomcat によって提供されるカスタム タスクです。Deploy タスクは、に配置されるDeployTaskクラス (クラスのフルネームはorg.apache.catalina.ant.DeployTask)によって実装されCATALINA_HOME/lib/catalina-ant.jarます。カスタム タスク ( などDeployTask) は通常、外部ライブラリに依存しているため、それらのライブラリを Ant のクラスパスに追加する必要があります。詳細については、Ant のオプション タスクを参照してください。

于 2016-08-09T18:35:11.980 に答える
0

https://issues.apache.org/bugzilla/show_bug.cgi?id=52148にアクセスしました

最新の Tomcat 7 リリースにアップグレードすると、問題は解消されます。

于 2012-08-05T19:27:48.873 に答える
0

Tomcat の新しいバージョン (7.0.32) も実行していますが、チュートリアルに従おうとしているときに同じエラーが発生しました。これが最善の解決策ではないことはわかっていますが、おそらくデバッグに役立つでしょう:-libオプションを使用antすると、必要なクラスを含む jar ファイルをプルすることができました: ant -lib /usr/local/apache-tomcat-7.0.32/lib/ -lib /usr/local/apache-tomcat-7.0.32/bin/ install(私の場合/usr/local/apache-tomcat-7.0.32$CATALINA_HOME)

于 2012-10-25T20:17:26.150 に答える