-
Notifications
You must be signed in to change notification settings - Fork 1
[CHORE] NoSuchMethodError를 openapi 버전이 호환되도록 수정하여 해결 #231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Walkthroughspringdoc-openapi-starter-webmvc-ui를 2.6.0에서 2.7.0으로 업그레이드하고 org.apache.poi의 Excel 관련 의존성 두 개를 제거했으며, Excel 다운로드 관련 어노테이션( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–30 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
💤 Files with no reviewable changes (3)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @coli-geonwoo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 Pull Request는 springdoc-openapi-starter-webmvc-ui 라이브러리의 버전 업데이트를 통해 발생하던 NoSuchMethodError를 해결하고, 동시에 사용되지 않는 Excel Export 관련 의존성을 정리하여 프로젝트의 안정성과 의존성 관리를 개선합니다. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
안녕하세요. PR 리뷰를 시작하겠습니다.
NoSuchMethodError를 해결하기 위해 springdoc-openapi 버전을 2.6.0에서 2.7.0으로 올리신 변경 사항을 확인했습니다. 이는 호환성 문제를 해결하기 위한 올바른 접근입니다.
다만, build.gradle 파일에서 Excel 내보내기 기능에 필요한 Apache POI 의존성을 제거한 부분을 발견했습니다. 관련 기능의 소스 코드(ExcelExport.java, ExcelExportInterceptor.java)는 여전히 프로젝트에 남아있어, 이 변경으로 인해 런타임 에러가 발생할 수 있습니다. 자세한 내용은 개별 코멘트를 참고해주세요.
| implementation 'io.jsonwebtoken:jjwt-api:0.11.5' | ||
| implementation 'io.jsonwebtoken:jjwt-impl:0.11.5' | ||
| implementation 'io.jsonwebtoken:jjwt-gson:0.11.5' | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excel 내보내기 기능과 관련된 ExcelExport.java 및 ExcelExportInterceptor.java 파일이 코드베이스에 남아있는데, Apache POI 의존성을 제거하셨습니다. 이 변경으로 인해 Excel 내보내기 기능이 동작할 때 ClassNotFoundException이 발생할 가능성이 매우 높습니다.
Excel 내보내기 기능을 제거하려는 의도였다면 관련 클래스 파일들도 함께 제거해야 합니다. 만약 기능이 유지되어야 한다면, 이 의존성들은 다시 추가되어야 합니다.
// Excel Export
implementation 'org.apache.poi:poi-ooxml:5.2.3'
implementation 'org.apache.poi:poi:5.2.3'
Test Results135 files 135 suites 14s ⏱️ Results for commit 703b1be. ♻️ This comment has been updated with latest results. |
📝 Test Coverage Report
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
build.gradle(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build-and-push
🔇 Additional comments (1)
build.gradle (1)
35-78: Apache POI 라이브러리 제거는 안전합니다.코드베이스에서 org.apache.poi 패키지, XSSFWorkbook, HSSFWorkbook 등 Apache POI 관련 참조가 전혀 발견되지 않습니다. org.apache.poi:poi-ooxml과 org.apache.poi:poi 라이브러리는 실제로 사용되지 않으므로 제거해도 문제없습니다.
|
|
||
| // Rest Docs & Swagger | ||
| implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' | ||
| implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
springdoc-openapi 2.7.0 Spring Boot 3.4.0 compatibility
💡 Result:
Short answer: springdoc-openapi 2.7.0 is listed as compatible with Spring Boot 3.4.x, but there are reported problems with the specific combination springdoc 2.7.0 + Spring Boot 3.4.0; the springdoc project recommends using the latest 2.x release (2.8.x) for Boot 3.4.x. [1][2]
Sources:
- springdoc compatibility matrix (shows 3.4.x ↔ 2.7.x–2.8.x; recommends latest 2.x such as 2.8.x). [1]
- Reported GitHub issue where swagger UI is not available with Spring Boot 3.4.0 + springdoc 2.7.0. [2]
🌐 Web query:
springdoc-openapi 2.7.0 release notes changelog
💡 Result:
Here are the v2.7.0 release notes / changelog highlights for springdoc-openapi:
- Release: v2.7.0 (published Mar 21, 2025 on Maven; GitHub release entry 23 Nov timestamp shown). [1][2]
- Added: SortAsQueryParam annotation, OAS v3.1 webhooks support, RequestBody-as-meta-annotation support, Encoding tests for multiple files/JSON payloads, display nullable request body with map type, README Gradle import. [1]
- Changed/upgraded: spring-boot → 3.4.0; swagger-ui → 5.18.2; swagger-core → 2.2.25; spring-security-oauth2-authorization-server → 1.4.0; spring-cloud-function → 4.2.0-M1. [1]
- Fixed (selected): fixes for bad schema return type with generic wrapper, issues loading API after spring-boot 3.4.0-M2, Swagger UI context-path problems, @hidden on controller class level, Kotlin ByteArray descriptions, preserving default media type order, content schema generation for @apiresponse, operationId deduplication with multiple content types, @JsonUnwrapped with PolymorphicConverter, Boolean parameter @Schema type bug, various other bug fixes and test fixes. [1]
Sources:
- GitHub release v2.7.0 (full changelog). [1]
- Maven repository index for springdoc-openapi starter artifacts (shows 2.7.0 published 2025-03-21). [2]
References:
[1] https://github.com/springdoc/springdoc-openapi/releases/tag/v2.7.0
[2] https://maven.wso2.org/nexus/content/repositories/public/org/springdoc/springdoc-openapi-starter-webmvc-ui/ (directory listing showing 2.7.0)
🏁 Script executed:
cd /root && find . -name "build.gradle" -type f 2>/dev/null | head -5Repository: debate-timer/debate-timer-be
Length of output: 127
🏁 Script executed:
# Check if there are references to poi (Excel) in the codebase
rg "poi|excel|Excel" -i --type gradle --type java -cRepository: debate-timer/debate-timer-be
Length of output: 678
🏁 Script executed:
cat -n build.gradleRepository: debate-timer/debate-timer-be
Length of output: 5023
🏁 Script executed:
head -50 src/main/java/com/debatetimer/controller/tool/export/ExcelExport.javaRepository: debate-timer/debate-timer-be
Length of output: 383
🏁 Script executed:
head -50 src/main/java/com/debatetimer/controller/tool/export/ExcelExportInterceptor.javaRepository: debate-timer/debate-timer-be
Length of output: 1900
springdoc-openapi 버전을 2.8.x로 업그레이드하세요. 2.7.0은 Spring Boot 3.4.0과의 호환성 문제가 보고되었습니다.
springdoc-openapi 공식 문서에서는 Spring Boot 3.4.x와 호환성을 위해 2.8.x 버전을 권장합니다. 2.7.0은 Spring Boot 3.4.0-M2에 대한 수정사항을 포함하지만, 최종 릴리스(3.4.0)와의 조합에서는 보고된 문제가 있습니다. 2.8.x를 사용하면 NoSuchMethodError 문제를 안정적으로 해결할 수 있습니다.
또한 build.gradle에는 Apache POI 의존성이 없으므로, 원본 리뷰 코멘트의 "Excel 라이브러리 제거" 언급은 부정확합니다.
🤖 Prompt for AI Agents
build.gradle around line 73: the springdoc-openapi dependency is pinned to 2.7.0
which has reported incompatibilities with Spring Boot 3.4.x; update the
dependency to a 2.8.x release (e.g., 2.8.0 or the latest 2.8.x) in build.gradle,
refresh/resolve Gradle dependencies (./gradlew --refresh-dependencies), and run
the test suite to confirm the NoSuchMethodError is resolved; also remove or
correct any review note about Apache POI in PR text since build.gradle does not
contain that dependency.
leegwichan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/noti @coli-geonwoo
콜리, Gemini와 CodeRabbit이 첨언해 주었는데 확인 부탁드립니다. springdoc-openapi 버전 관련해서 그대로 갈거라면 관련 문서라도 첨부해주세요.
|
/noti 이슈에 적어놓았는데 PR에 적어놓지 못했네요... 설명은 다음과 같습니다. (+ Excel 관련 클래스들은 모두 지웠음) GlobaExceptionHandler에 에러 추가 안한 이유
봇 요청은 어떻게 할거임?
|
unifolio0
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/noti
approve했습니다!
leegwichan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/noti appove 하겠습니다.
🚩 연관 이슈
closed #230
🗣️ 리뷰 요구사항 (선택)
Summary by CodeRabbit
Chores
Removed Features
이번 릴리스는 일부 엑셀 내보내기 기능 제거와 문서화 도구 업데이트가 핵심입니다.
✏️ Tip: You can customize this high-level summary in your review settings.