我正在使用tomcat来运行Web应用程序。如果没有在localhost上添加到我的Tomcat v6.0服务器的任何项目,我启动服务器并抛出异常。它说没有sun.awt.AppContext类的映射我正在使用jre6作为我的运行时。我将JAVA_HOME环境变化设置为jre6文件夹,并将Eclipse设置为相同的文件夹。你知道为什么我得到这个例外以及如何解决?
这是我的堆栈跟踪:
Nov 1, 2011 5:21:36 PM 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 java.library.path: C:\Program Files\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:\oracle\Ora11g\BIN\;C:\Program Files\Serena\Dimensions 2009 R1\CM\prog;C:\Program Files\Serena\Dimensions 2009 R1\CM\prog\Microsoft.VC80.MFC;C:\Program Files\Serena\Dimensions 2009 R1\CM\prog\Microsoft.VC80.CRT;C:\Program Files\Serena\Dimensions 2009 R1\CM\prog\Microsoft.VC80.ATL;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\OTG;C:\Program Files\Windows Imaging\;C:\Program Files\IBM\Personal Communications\;C:\Program Files\IBM\Trace Facility\;C:\Program Files\HP\QuickTest Professional\bin;c:\PROGRA~1\IBM\SQLLIB\BIN;c:\PROGRA~1\IBM\SQLLIB\FUNCTION;c:\PROGRA~1\IBM\SQLLIB\SAMPLES\REPL;C:\Program Files\Eclipse 3.7\apache-maven-3.0.3\bin; C:\Program Files\Java\jre6\bin;C:\Program Files\HP\QuickTest Professional\bin
Letting agent QTJA do the transformation
Letting agent QTOR do the transformation
java.util.NoSuchElementException: No mapping for class sun.awt.AppContext
at com.mercury.bcel.TransformerXmlFile$MappingLocator.setMapping(TransformerXmlFile.java:96)
at com.mercury.bcel.TransformerFactory.createTransformer(TransformerFactory.java:56)
at com.mercury.bcel.TransformerMainImpl.transform(TransformerMainImpl.java:33)
at com.mercury.bcel.TransformerMain.transform(TransformerMain.java:35)
at com.mercury.javashared.transform.TransformersChain.transform(TransformersChain.java:32)
at com.mercury.javashared.transform.CommunicationThread.processTransformRequest(CommunicationThread.java:61)
at com.mercury.javashared.transform.CommunicationThread.run(CommunicationThread.java:38)
感谢您的想法!
答案 0 :(得分:2)
我很确定您的问题是HP QuickTest。
HP QuickTest设置JVM选项,修改java bootclasspath - 讨厌。
我不确定它是如何工作的,但我猜它设置了一个环境变量JAVA_OPTS(由Tomcat的启动脚本获取)
3个选项(第一个是明确的,第二个和第三个是基于我的猜测):
这样的事情:
echo "Current JAVA_OPTS (resetting to ''):"
echo %JAVA_OPTS%
set JAVA_OPTS=""
3:或者,尝试在Eclipse服务器启动对话框中设置JAVA_OPTS变量(为空字符串)
答案 1 :(得分:0)
我也面临同样的问题,但我的Apache Tomcat通过Cargo Container包装器加载。 所以我删除了这2个环境。变量来解决问题
JAVA_TOOL_OPTIONS -agentlib:jvmhook
_classload_hook jvmhook