MyFaces tomcat7:запустить goal не удается запустить ProtocolHandler " http-bio-8080"
Я создал новый проект MyFaces с архетипом maven HelloWorld 2.0 OpenWebBeans
и протестировал его мгновенно с mvn clean -Dcontainer="tomcat7" tomcat7:run
.
Все идет хорошо, пока не доходит до запуска котяра.
Процесс застревает на следующем:
INFO: Starting ProtocolHandler ["http-bio-8080"]
Я ждал более 20 минут. этого не может быть.
Info: нет другой службы, работающей на порту 8080, а также нет другого tomcat.
Почему Протокольхандлер не запускается?! Я просто хочу разработать JSF Приложение с CDI и развернуть его на Tomcat7, используя Maven. Если у кого-то есть лучшее решение для меня - выплюнуть! ;)
спасибо!
обновление: Спасибо за трюк jstack, очень классная функция! Вот полный StackTrace из jstack: Как я вижу, http-bio имеет AsyncTimeout и находится в состоянии TIMED_WAITING...что мне делать дальше? Спасибо, ребята!
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode):
"http-bio-8080-AsyncTimeout" daemon prio=6 tid=0x000000000c697000 nid=0xf3c waiting on condition [0x000000000d54f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:148)
at java.lang.Thread.run(Thread.java:722)
"http-bio-8080-Acceptor-0" daemon prio=6 tid=0x000000000ae7a000 nid=0x97c runnable [0x000000000d25e000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:121)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183)
- locked <0x00000000f3670350> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
at java.lang.Thread.run(Thread.java:722)
"ContainerBackgroundProcessor[StandardEngine[Tomcat]]" daemon prio=6 tid=0x000000000be73800 nid=0x9c8 waiting on condition [0x000000000d36f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1517)
at java.lang.Thread.run(Thread.java:722)
"OwbConversationCleaner-/webapp" daemon prio=6 tid=0x000000000ab58800 nid=0x7f4 waiting on condition [0x000000000cb1e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000f3487a10> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"Service Thread" daemon prio=6 tid=0x0000000008ea1800 nid=0xfcc runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x0000000008e9f800 nid=0xb70 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x0000000008e9a800 nid=0x6ec waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x0000000008e9a000 nid=0xa98 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x0000000008e92800 nid=0x85c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x0000000002499000 nid=0x918 in Object.wait() [0x000000000a17f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c0918c00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000c0918c00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
"Reference Handler" daemon prio=10 tid=0x0000000002492800 nid=0x994 in Object.wait() [0x000000000a05f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c0918910> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x00000000c0918910> (a java.lang.ref.Reference$Lock)
"main" prio=6 tid=0x000000000239d800 nid=0xf20 in Object.wait() [0x000000000264e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ebe51d28> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.waitIndefinitely(AbstractRunMojo.java:835)
- locked <0x00000000ebe51d28> (a java.lang.Object)
at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:356)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
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:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
"VM Thread" prio=10 tid=0x0000000008e12000 nid=0xf30 runnable
"GC task thread#0 (ParallelGC)" prio=6 tid=0x00000000023e4800 nid=0xeec runnable
"GC task thread#1 (ParallelGC)" prio=6 tid=0x00000000023e6000 nid=0xfe0 runnable
"GC task thread#2 (ParallelGC)" prio=6 tid=0x00000000023e7800 nid=0xd54 runnable
"GC task thread#3 (ParallelGC)" prio=6 tid=0x00000000023e9800 nid=0x8cc runnable
"VM Periodic Task Thread" prio=10 tid=0x0000000008eba000 nid=0xc40 waiting on condition
JNI global references: 272
2 ответов
У меня была аналогичная проблема при использовании tomcat7-maven-plugin. Я попытался привязать tomcat к другому порту, добавив следующее К моему pom.XML-код:
<execution>
<id>tomcat-run</id>
<goals>
<goal>run</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<port>19090</port>
</configuration>
</execution>
когда я взял этот блок, проблема ушла.
попробуйте использовать jstack
чтобы получить дамп того, что все потоки делают. Он покажет каждый поток и какой метод он в настоящее время выполняет вместе с информацией о том, работает ли он, ждет или заблокирован.
Если вы можете обновлять ваш вопрос с этой информацией, это было бы полезно.
Примечание, Вы можете получить MyFaces, OpenWebBeans и Tomcat все интегрированы вместе из коробки и Java EE 6 сертифицированы в TomEE