Тот же исходный код запускается только при компиляции на компьютере, на котором запущен Tomcat. - PullRequest
0 голосов
/ 04 января 2012

У меня странная проблема с моим сервером Tomcat7.Я установил виртуальную машину, на которой работает только сервер Tomcat, чтобы начать изучение JSP и сервлетов.Я создал файл на своем хосте (не на Tomcat VM) в Eclipse и скопировал его на виртуальную машину.Если я запускаю Tomcat, я получаю следующую ошибку:

SEVERE: Error deploying web application directory /opt/apache-tomcat-7.0.23/webapps/ch1
java.lang.IllegalStateException: ContainerBase.addChild: start:     org.apache.catalina.LifecycleException: Failed to start component     [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ch1]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:869)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:842)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:636)

Если я скопирую исходный код в виртуальную машину и скомпилирую его, он будет работать!Кстати, компиляция на хосте была вызвана так же, как на vm (javac -classpath foo.java

Некоторые спецификации для обеих сред:

host:

  • jdk7
  • библиотеки сервлетов из установки tomcat7

tomcat vm:

  • openjdk6
  • библиотеки сервлетов из установки tomcat7

Имеет ли это какое-то отношение к различным версиям Java?

...