使用jetty服务器,远程服务器进行调试

时间:2013-02-22 10:51:09

标签: java eclipse web-applications spring-mvc jetty

我使用maven开发了一个Web应用程序(spring)并使用了jetty服务器。我想使用eclipse调试该应用程序。 pom.xml中jetty插件的条目是

              `<plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.5.v20120716</version>
            <configuration>
              <scanIntervalSeconds>0</scanIntervalSeconds>
                <webAppSourceDirectory>${webappDirectory}</webAppSourceDirectory>
                <contextPath>/admin</contextPath>
                <stopPort>9967</stopPort>
                <stopKey>foo</stopKey>

                <connectors>
                    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                        <port>${httpPort}</port>
                        <maxIdleTime>60000</maxIdleTime>
                    </connector>
                    <connector implementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
                        <port>${httpsPort}</port>
                        <keystore>${webappDirectory}/WEB-INF/blc-example.keystore</keystore>
                        <keyPassword>broadleaf</keyPassword>
                        <password>broadleaf</password>
                    </connector>
                </connectors>
            </configuration>
        </plugin>`

我从ant任务开始这个服务器

<target name="jetty-demo" depends="start-db">
    <delete dir="war/WEB-INF/lib"/>
    <artifact:mvn mavenHome="${maven.home}" fork="true">
        <jvmarg value="-XX:MaxPermSize=256M" />
        <jvmarg value="-Xmx512M" />
        <jvmarg value="-Xdebug" />
        <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8009,server=y,suspend=n" />
        <jvmarg value="-Xdebug"/>
        <arg value="compile"/>
        <arg value="war:exploded"/>
        <arg value="jetty:run"/>
    </artifact:mvn>
</target>

现在,使用本教程中给出的步骤,将调试器设置在eclipse中 steps to enable debugger wiht jetty sever

但我收到了以下错误

侦听远程VM连接失败 已在使用的地址:JVM_Bind

如何解决此问题。

由于

2 个答案:

答案 0 :(得分:0)

看起来某些东西已经在使用JVM尝试用来启用远程调试的端口。看起来您正在尝试使用8009.尝试将其更改为其他内容。

答案 1 :(得分:0)

您可以从命令提示符处发出follwoing命令。 mvnDebug jetty:run-explosion antrun:run然后你会知道你的码头正在听哪个端口去运行 - >从那里调试配置你可以调试你的服务器。 在调试配置中,您可以在此处找到远程Java应用程序选项,为新的远程Java应用程序创建一个新的调试配置,此处还可以定义新的服务器 再次 mvnDebug jetty:run-explosion 现在你应该看到你的新端口了。