Intellij - 调试器无法在maven项目中工作

时间:2017-12-18 12:03:00

标签: java maven spring-boot intellij-idea

我遇到了一个问题,我无法在IntelliJ中调试maven sprint启动REST API应用程序。应用程序启动但不会在任何断点处停止。

此外,当我停止调试器时,我在日志中看到下面的行,但是我可以看到java进程永远不会终止,当我第二次启动应用程序失败时,因为服务器端口8080仍在使用中。

class Recipe {
    private $title;
    public $author = "Me myself";
    public $ingredients = array();
    public $instructions = array();
    public $tag = array();

    public function setTitle($title) {
        echo $this->title = ucwords($title);
        echo $this->author;
    }
    public function getTitle() { // Removing parameter as it's unused
        echo $this->title;
    }
}

$recipe1 = new Recipe();
    $recipe1->setTitle("chinese tofu noodles"); // set the title
    $recipe1->getTitle(); // print the title
    echo $recipe1->author; // Will print "Me myself"

$recipe2 = new Recipe();
    $recipe2->setTitle("japanese foto maki"); // set the title
    $recipe2->getTitle(); // print the title
    echo $recipe2->author = "A.B"; // Will print "A.B"

在C:\ Users \ Bernhard.IdeaIC2017.3 \ system \ log的IntelliJ日志中,我看到以下错误。

Disconnected from the target VM, address: '127.0.0.1:53020', transport: 'socket'
Process finished with exit code -1

2 个答案:

答案 0 :(得分:1)

您可以将该参数的值包装在引号中。读取整个命令行字符串的解析器可能因为-D arg中的-D arg而窒息。

clean package -Drun.profiles = dev-us-east-1 -Drun.jvmArguments = “ - Denvironment = dev” -DskipTests spring-boot:run

答案 1 :(得分:0)

经过一番搜索,我发现问题出在IntelliJ中的Maven Run / Debug配置中。我用来启动spring boot rest api的命令行是

2017-12-15 07:22:30,761 [  11899]   INFO - .server.BuildMessageDispatcher - An existing connection was forcibly closed by the remote host 
java.io.IOException: An existing connection was forcibly closed by the remote host
    at sun.nio.ch.SocketDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
    at sun.nio.ch.IOUtil.read(IOUtil.java:192)
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
    at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288)
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1100)
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    at java.lang.Thread.run(Thread.java:745)

clean package -Drun.profiles=dev-us-east-1 -Drun.jvmArguments=-Denvironment=dev -DskipTests spring-boot:run java命令行属性似乎是罪魁祸首。当我删除它时,断点再次起作用。