11

LinuxのコマンドラインからTomcat7を起動する際に問題が発生し、ログに次のように表示されます。

Sep 24, 2012 8:54:10 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the jav
a.library.path: /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64/server:/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64:/u
sr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/../lib/amd64:/usr/lib64/mpi/gcc/openmpi/lib64:/usr/java/packages/lib/amd64:/usr/lib64:/lib6
4:/lib:/usr/lib
Sep 24, 2012 8:54:10 AM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.UnsupportedClassVersionError: pms/security/BCryptRealm : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:144)
        at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:504)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.jav
a:1320)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScann
erImpl.java:2732)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:48
8)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
        at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:610)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:658)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)

グーグルから私は無視できる最初のビットを理解していますが、それはJava 6と言い続けているので、それが使用しようとしているJavaのバージョンを示しているのだろうかと思いました。どういうわけかJavaバージョンの問題。

問題のあるクラス(BCryptを使用するカスタムレルム)をantを使用して構築し、ant -vを実行すると、Java7でコンパイルされていることがわかります。Java 7も使用するようにJAVA_HOMEとJDK_HOMEを設定しました(私が知る限り、これらはすべて同じ場所を指しています)。

他に何が欠けていますか?さらに情報が必要な場合はお知らせください。何がうまくいかないのかをどこで探すべきかについての指針を本当に感謝します。ありがとう。

コメントの質問ごとにもう少しETA情報:コマンドラインからTomcatを開始しています。tomcatベースディレクトリから./bin/startup.shを実行するだけです。ApacheのWebサイトからtomcatをダウンロードしました。コアのtar.gzバージョンを入手し、昨夜解凍しました(以前はバージョン6しかなく、アップグレードしたかったのです)。また、これは私の個人的なマシンではありません。それが重要な場合、私はユーザー権限しか持っていません。

4

4 に答える 4

10

tomcat/binディレクトリを開き、パラメータを変更しJAVA_HOMEますcatalina.sh

于 2012-09-24T15:23:29.793 に答える
3

私は与えられた応答が正しいとは思わない。実際、major.minor例外は、インストールした現在のJavaバージョンが最小要件に一致しないことを意味します。特に、エラーでは51(Java SE 7の内部コード)と表示されます。したがって、この問題を修正するには、実際にJava7をインストールする必要があります。

于 2013-08-24T04:13:13.800 に答える
2

JRE_HOMEがJRE1.6(またはそれ以降)に設定されていることを確認します。

また、ただの落とし穴。Tomcatを2つインストールしている場合(つまり、Tomcat8とTomcat7)、CATALINA_HOME変数がTomcat8のパスに設定されていないことを確認してください。これもこの問題を引き起こすためです。(最初はログを見落としていました!)

C:\devtools\apache-tomcat-7.0.47\bin>set CATALINA_HOME=C:\devtools\apache-tomcat-8.0.0-RC5

C:\devtools\apache-tomcat-7.0.47\bin>configtest.bat
Using CATALINA_BASE:   "C:\devtools\apache-tomcat-8.0.0-RC5"
Using CATALINA_HOME:   "C:\devtools\apache-tomcat-8.0.0-RC5"
Using CATALINA_TMPDIR: "C:\devtools\apache-tomcat-8.0.0-RC5\temp"
Using JRE_HOME:        "C:\Progra~1\Java\jdk1.6.0_45\jre\"
Using CLASSPATH:       "C:\devtools\apache-tomcat-8.0.0-RC5\bin\bootstrap.jar;C:\devtools\apache-tomcat-8.0.0-RC5\bin\tomcat-juli.jar"
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.catalina.startup.Bootstrap.  Program will exit.

Fyi、次を使用してCATALINA_HOMEの設定を解除できます。

set CATALINA_HOME=
于 2014-01-03T04:01:11.830 に答える
0

同様の問題に直面し、互換性のないjdkバージョン1.6でTomcat8.5を使用していることがわかりました。その後、最新のJDKバージョン1.8をインストールし、問題が解決しました。お役に立てば幸いです。

于 2018-02-04T07:21:28.370 に答える