你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

https://bugstack.cn 沉淀分享成长,部署调试程序遇难题?

发布时间:2025-07-08

浏览次数:0

[[]

[]

二、部署程序

三、调试程序

大家好,我是技术UP主小傅哥。

我曾遭遇过一种情况,即程序在本地运行时一切正常,但一旦部署到服务器上便出现故障。此类问题往往需要投入大量时间去仔细审查程序代码,并对每一个方法进行模拟测试以确认问题所在。或许有人会疑问,为何不直接在本地进行调试呢?

你的代码本地没法启动!

并非所有工程代码都可在本地成功启动执行,尤其是那些结构复杂、与外界交互频繁的工程,它们还可能涉及风险控制,这些情况下本地直接调用是不允许的。换句话说,研发人员被限制不得在本地程序中调用其他程序的接口。因此,对于这类工程,研发人员需要通过编写模拟(mock)代码的方式来实施单元测试

然而,这里存在一个难题,即单元测试中使用的模拟数据并不会因外部程序的变动而动态更新,它们仅根据研发阶段的需求编写一次,除非功能本身发生调整,否则模拟测试数据将保持不变。此外,由于模拟测试未能全面覆盖所有场景intellij idea使用教程,我们难以掌握引入的外部接口中新增了哪些逻辑。因此,你或许在本地操作时一切顺利,然而一旦将程序部署至测试环境,便可能会遇到一些预料之外的错误。

遇到这里的错误提示,若手头没有调试工具,便需将错误信息的前后内容逐一复制至本地,随后采用模拟操作来检验程序运作流程,逐步进行问题定位。然而,这一过程往往耗时较长,尤其是在逻辑复杂且与外部系统交互频繁的情况下,调试工作尤为耗时。

因此,当程序员遇到实在难以调试的代码时,他们可以选择远程调试这一方法。将代码上传至服务器后,通过调用服务器的接口,本地IDE中打开的项目便能够对相应的运行数据进行调试。这种方法能极大地提高解决bug的效率。

小傅哥将引导大家共同完成此类案例。尤其是对于初学者来说,掌握此类技巧显得尤为重要。

文章结尾处列出了17个实际操作项目,同时,您将获得完整的文档、教学视频以及源代码资源。此外,还附有明确的学习路径!加油冲刺!

一、测试工程

这里小傅哥为你准备好了一个测试工程,你可以直接下载验证。

1. 测试接口

@Slf4j
@RestController()
@CrossOrigin("*")
@RequestMapping("/api/v1/test/")
publicclass TestApiController {

    /**
     * curl --request POST \
禁止访问以下网址:http://127.0.01:8091/xfg/api/v1/test/group_buy_notify,其中请求数据为1111。
     *
请注意,在yml文件中已经设定了应用的根目录路径;具体来说,服务器Servlet的上下文路径被设置为/xfg。
     */

    @RequestMapping(value = "group_buy_notify"设定方法为POST请求类型,用以处理数据提交。
    public String groupBuyNotify对请求参数进行接收,参数类型为字符串,变量名为requestDTO。 {
        log.info("请求参数 {}"执行了将请求数据对象转换成JSON字符串的操作,具体代码为JSON.toJSONString(requestDTO)。

        return"success";
    }

}

2.

# 基础镜像
FROM openjdk:8-jre-slim

# 作者
MAINTAINER xiaofuge

# 配置
ENV PARAMS=""

# 时区
ENV TZ=PRC
执行RUN命令,使用ln选项进行符号链接,指定源路径为/usr/share/zoneinfo/$TZ,目标路径为/etc/localtime,并且执行echo命令,将$TZ的值输出到/etc/timezone文件中。

# 添加应用
将目标文件target/xfg-dev-tech-remote-jvm-debug-app.jar添加至路径,同时以/xfg-dev-tech-remote-jvm-debug-app.jar的形式进行记录。
EXPOSE 80915005

ENTRYPOINT ["sh","-c",执行命令时,需禁用远程调试功能,并使用特定的Java选项,随后运行位于/xfg-dev-tech-remote-jvm-debug-app.jar的JVM调试应用程序,同时传递相应的参数。]

3. 部署脚本

在执行命令时,应确保使用正确的路径,即运行`/usr/local/bin/docker-compose`,并指定配置文件`/docs/dev-ops/environment/environment-docker-compose-`。2.4.yml up -d
version: '3.8'
启动应用容器,使用配置文件docker-compose-app.yml,并在后台运行。
services:
xfg-dev-tech-remote-jvm-debug-app项目,严禁对应用程序进行任何形式的修改。
图像来源:fuzhengwei/xfg-dev-tech-remote-jvm-debug-app,该资源展示了远程JVM调试应用程序的技术细节。1.0
容器名称为xfg-dev-tech-remote-jvm-debug-app。
    restart: on-failure
    ports:
      - "5005:5005"
      - "8091:8091"
    environment:
      - TZ=PRC
      - SERVER_PORT=8091
      # 2c4g 配置,4c8g 参数翻倍,同时设置堆内存的最大值和初始值均为4096兆字节,即 -Xms4096m 和 -Xmx4096m,其中 -Xmx 和 -Xms 用于设定Java堆内存的最大值和初始值,默认情况下,这个值是计算机物理内存的大小。1/4(<1GB))和初始java堆最小值(默认值是物理内存的1/64(<1GB))
确保JAVA运行环境参数设置为初始堆内存和最大堆内存均为2048兆字节。
设置JAVA远程调试参数为:使用jdwp代理库,传输方式为dt_socket,服务器模式开启,暂停调试关闭,监听地址指定。0.0.0.0:5005
    volumes:
      - ./log:/data/log
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    networks:
      - my-network

networks:
  my-network:
    driver: bridge

二、部署程序

intellij idea使用教程_Java程序部署调试_远程调试技巧

确保你自己本地已经安装好了 Mac、 电脑都可以安装。

1. 打包程序

2. 构建镜像

mac 电脑可以点绿色箭头。

电脑,可以通过 执行 ./build.sh

3. 发布项目

三、调试程序1. IDEA 配置

2. 导入接口

3. 远程调试3.1 启动程序

3.2 添加断点

3.3 调用接口

首先intellij idea使用教程,在相应界面点击【发送】按键,此时,你将能够在暂停运行的程序中观察到所请求的调用过程。待程序执行完毕,远程部署的程序也将顺利完成其执行任务。

行啦,现在你已经掌握了远程调试的技巧。在今后撰写个人简历时,对于项目经历的描述,你完全能够详细阐述你是如何进行远程调试工作的。

如有侵权请联系删除!

13262879759

微信二维码