john__huang 2015-01-05 05:49 采纳率: 0%
浏览 1007

jrebel(破解版)应用到Eclipse 的maven jetty项目中怎么配置

我的maven jetty已装好了,jrebel也下载了。不知道如何把jrebel配置到maven jetty中去。求大神帮助。
另:我的一个笔计本电脑里,里面是配置的。你可以参考。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 05:58
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Maven Jetty项目中使用JRebel进行调试时,你需要遵循以下步骤:

    1. 安装JRebel插件
      • 首先,在你的Maven项目中添加org.eclipse.jetty.rebel依赖。在pom.xml文件中,确保包含以下依赖:
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-rebel</artifactId>
        <version>9.4.2.v20230724</version>
    </dependency>
    
    1. 创建JRebel服务器配置
      • 在Maven项目的web应用程序目录下创建一个名为target/rebel-server.xml的文件。
      • 以下是一个基本的示例配置文件,包括HTTP端点和日志输出规则:
    <?xml version="1.0" encoding="UTF-8"?>
    <rebelServer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:noNamespaceSchemaLocation="https://github.com/eclipse/jetty/rebel/releases/download/9.4.2.v20230724/rebel-server.xsd">
        <run>
            <endpoint name="default">
                <uri>/your-rebel-endpoint</uri>
                <host>localhost</host>
                <port>9999</port>
            </endpoint>
        </run>
        <logOutput>
            <configuration>
                <level>DEBUG</level>
                <file>${jetty.util.FileOutputSystem.toFile("debug.log", "file")}</file>
                <layout>%thread% %-5level %logger{65} - %msg%n</layout>
            </configuration>
        </logOutput>
    </rebelServer>
    
    1. 创建JRebel断点配置
      • 打开Maven项目的target/rebel-binder.xml文件(如果你已经安装了Jetty and Eclipse Reagent)。
      • 创建一个名为target/rebel-binder-starter.xml的Spring Boot应用类,继承自org.eclipse.jetty.rebel.binder.BinderStarter,并为断点提供如下信息:
    <bean id="rebelBinderStarter" class="com.example.MyRebelBinderStarter">
        <property name="binderUrl" value="${jetty.binders.baseURL}/your-rebel-endpoint"/>
        <property name="debugOutputPath" value="${jetty.debug.outputPath}/your-rebel-endpoint-debug.log"/>
        <property name="cacheEnabled" value="${jetty.cache.enabled}" />
        <property name="contextConfigLocation" value="classpath:my-rebel-config.xml"/>
        <property name="debugTracingEnabled" value="${jetty.debug.tracing.enabled}" />
    </bean>
    
    1. 创建断点配置文件
      • 在你的Web应用程序目录下的src/main/resources/my-rebel-config.xml文件中,定义断点配置项,如环境变量、断点行为等。
    <properties>
        <env.JREBEL_DEBUG>true</env.JREBEL_DEBUG>
        <!-- 常用断点行为 -->
        <pattern pattern="Line XX, Column XX" />
        <pattern pattern="Timeout XX ms" />
        <!-- 错误路径设置 -->
        <path pattern="/your-rebel-endpoint-error-path"/>
        <!-- 界面消息格式 -->
        <message format="%thread% %-5level %logger{65} - %msg%n"/>
    </properties>
    
    1. 将断点配置应用到断点位置
      • 编辑target/rebel-binder-starter.xml中的断点行为,例如添加pattern="Line XX, Column XX",并在相应的Java方法或线程级别上执行断点。
      • 在Maven项目中配置断点测试框架,如JUnit或TestNG,来运行并检查断点的执行情况。
    import org.junit.jupiter.api.Test;
    import org.junit.jupiter.api.condition.EnabledIf;
    import org.junit.jupiter.api.extension.BeforeClass;
    
    @EnabledIf("${env.JREBEL_DEBUG}")
    public class MyRebelBinderTest {
        private static final String THREAD_NAME = Thread.currentThread().getName();
        private static final int LINE_NO = 123;
        private static final int COLUMN_NO = 456;
    
        @BeforeClass
        public void setUp() throws Exception {
            // ... (your setup code here)
    
            // 添加断点并保存至断点位置
            RebelBinderStarter binderStarter = new RebelBinderStarter();
            binderStarter.addPattern(LINE_NO, COLUMN_NO);
            binderStarter.attach(context -> { });
            binderStarter.setApplicationContext(context);
            binderStarter.saveToBreakpoints(new BreakpointConfiguration());
        }
    
        @Test
        public void testMyMethod() {
            System.out.println(Thread.currentThread().getName());
            System.out.println(LINE_NO + ", " + COLUMN_NO);
    
            // 测试方法
            // ...
        }
    }
    
    1. 启动和运行Maven项目
      • target/rebel-binder-starter.xml及其相关的配置项应用到Maven项目,然后通过Maven打包项目生成可运行的War或Ear文件。
      • 使用Eclipse Jetty启动你的Maven Jetty项目,并进入其工作目录,以便在断点处测试你的Maven jetty应用程序。

    注意:

    • 需要确保Java 11或更高版本支持断点功能,因为JRebel的最新版本支持Java 17及以上。
    • 修改my-rebel-config.xml文件的内容以适应你的具体断点配置需求。
    • 如果在断点处没有成功触发Maven应用的特定部分,可能是因为断点的行为不符合你的预期。尝试改变断点行为、修改断点的位置或者删除未生效的断点,以便找到导致失败的原因。

    以上就是在Maven Jetty项目中使用JRebel对Eclipse的maven jetty项目进行调试的基本步骤。对于更复杂的断点配置,可能需要结合JRebel的API文档和实际的应用场景进行定制。

    评论

报告相同问题?

悬赏问题

  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥30 C++行情软件的tick数据如何高效的合成K线