Java 如何使用TomEE调试IntelliJ中的REST?

Java 如何使用TomEE调试IntelliJ中的REST?,java,maven,intellij-idea,Java,Maven,Intellij Idea,我对IntelliJ和Java非常陌生 我的服务很简单: @Path("loyaltyMembers") @ApplicationScoped @Consumes(APPLICATION_XML) @Produces(APPLICATION_XML) public class LoyaltyService { @POST @Path("status") public MemberStatusResp queryMemberStatus(MemberCard card) {

我对IntelliJ和Java非常陌生

我的服务很简单:

@Path("loyaltyMembers")
@ApplicationScoped
@Consumes(APPLICATION_XML)
@Produces(APPLICATION_XML)
public class LoyaltyService {
    @POST
    @Path("status")
    public MemberStatusResp queryMemberStatus(MemberCard card) {
        MemberProfileResp retval = new MemberProfileResp();
        retval.setMemberName(new MemberName("michael","jackson"));
        return retval;
    }

    @POST
    @Path("profile")
    public MemberProfileResp queryMemberProfile(MemberCard card) {
        return null;
    }

    @GET
    @Path("getHistory")
    public String getPointHistory() {
        return "hello";
    }
}
该项目是使用Maven和TomEE设置的。 我可以正确编译并运行目标TomEE:run

我可以正确点击端点getHistory并接收响应

但当我试图发布到状态端点时,它失败了

我的问题是,如何进入IntelliJ的调试模式

我使用[Run]->[Edit Configurations]创建远程设置,如下所示:

但是如果我使用这个配置进入调试模式,我会继续 “无法打开调试器端口(本地主机:8080)”

有人知道如何正确调试吗? 谢谢

  • 在Intellij中安装Tomcat和TomEE集成插件(
    Settings>Plugins
  • 基于
    TomEE Server
    创建新的运行配置。根据要部署Web服务的位置选择本地或远程
  • 为您的应用程序配置配置(部署选项卡必须调整)
  • 如果配置正确,按start按钮将编译、部署和启动TomEE服务。在这种情况下,您可以按Debug按钮以调试模式启动服务

  • 作为个人提示:无需使用Maven运行配置。相反,要学会理解需要发生什么,以及IDE如何帮助您做到这一点。上述配置的效率是Maven run配置的十倍,Maven run配置速度慢且可调试性差。

    您是否尝试过在调试模式下运行Maven命令
    tomee:run
    ?用这个命令创建一个常规的maven运行配置,运行它时,按debug按钮。它可以启动服务,我可以点击端点。然后我尝试在远程调试模式下运行,它仍然给我“运行远程时出错:无法打开调试器端口(localhost:8080):java.io.IOException”握手失败-连接过早关闭“”不,不是终端。创建一个“Maven运行/调试配置”,然后,要运行它,不要按绿色的播放按钮(在右上角的栏中),而是按调试按钮。嗯,我刚刚试过。我创建了一个Maven运行配置,并将“tomee:run”放在命令行中。点击调试按钮,它启动了服务,我可以点击端点。但是IDE似乎没有处于调试模式,我不能点击任何断点。事实上,今天早上我终于想出了如何调试它。我真正应该执行的是目标:tomee:debug,它将启动服务器并侦听另一个端口:5050,然后我为它创建一个远程运行配置。运行调试,它像魔术一样工作!