apifox 调用camunda engine-rest接口报错“type“: “NotFoundException“

官方文档在这:
https://docs.camunda.org/rest/camunda-bpm-platform/7.19/

在这里插入图片描述

现象

engine-rest本是可以直接请求的,我把openapi导入到apifox之中了,我测试一下接口没有能请求成功的,基本都报以下的错。

报错如下

{
    "type": "NotFoundException",
    "message": "RESTEASY003870: Unable to extract parameter from http request: javax.ws.rs.QueryParam(\"firstResult\") value is ''",
    "code": null
}

解决办法

这个坑花了我半天时间也没有解决,直到我偶尔使用浏览器请求以下地址,可以成功的请求。
http://localhost:8080/engine-rest/authorization?userIdIn=demo,jonny2

才发现原来这个坑是因apifox而起。

在这里插入图片描述
在apifox中把不需要传的参数前面的勾去掉。因为不去掉的话,apifox默认会传一个空的内容过去。如下:

http://localhost:8080/engine-rest/authorization?id=&type=&userIdIn=demo,jonny2&groupIdIn=&resourceType=&resourceId=&sortBy=&sortOrder=&firstResult=&maxResults=

这样就导致接口返回报错了。

如果手动去掉无用的参数后,请求内容就如下:

http://localhost:8080/engine-rest/authorization?userIdIn=demo,jonny2

总结

欲哭无泪,不经意间踩的坑几乎浪费了我一整天的时间。我甚至怀疑自己对文档的理解能力是不是有什么问题。为什么文档中说的那么简单我怎么试都无法成功。

收获不在要一颗树上吊死,我应该早一些换个工具来测试接口。或换个方法。

我一直怀疑是我写的接口路径有问题。

### 解决 Java 中 `NullPointerException` 异常的方法 当遇到 `NullPointerException` 时,意味着尝试访问的对象为空(null),而代码期望该对象存在并具有某些属性或方法。处理此类异常的关键在于识别潜在的 null 值,并采取预防措施来避免它们引发错误。 #### 方法一:检查和初始化对象 确保所有可能被调用其成员之前都已正确定义且不为null。可以通过显式的条件判断实现这一点[^1]: ```java if (object != null) { object.method(); } ``` #### 方法二:使用 Optional 类 自 Java 8 起引入了 `Optional<T>` 来帮助管理可选值的情况,从而减少直接操作可能导致 NPE 的场景: ```java Optional<String> optionalValue = Optional.ofNullable(mightBeNull); optionalValue.ifPresent(System.out::println); // 只有在 non-null 时才执行打印语句 ``` #### 方法三:防御性编程实践 采用更严格的编码标准,在函数签名处声明哪些参数不允许传入 null;同时利用断言机制验证输入的有效性[^2]: ```java public void process(String param) { Objects.requireNonNull(param, "Parameter must not be null"); ... } ``` 对于特定于开发环境迁移过程中可能出现的问题,比如从 JBuilder 到 WTK 编译环境下发生的ClassNotFoundException,这通常是因为类路径设置不当所致。因此建议仔细核对项目结构以及相应的 package 声明是否匹配目标平台的要求。 最后值得注意的是,如果应用程序运行正常并未抛出任何异常,则说明当前逻辑下不会触发 NullPointerException 或其他类似的 runtime exception[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值