Azure Document Intelligence Java SDK调用返回404错误求助
Azure Document Intelligence Java SDK 404错误排查方案
问题概述
使用Azure Document Intelligence Java SDK(版本com.azure:azure-ai-documentintelligence:1.0.0-beta.3)调用prebuilt-layout模型提取文档段落时,触发ResourceNotFoundException,返回404状态码,提示"Resource not found"。
代码示例
public class DocumentIntelligenceApp { private static final String ENDPOINT = System.getenv("DOCUMENT_INTELLIGENCE_ENDPOINT"); private static final String KEY = System.getenv("DOCUMENT_INTELLIGENCE_KEY"); private static final String MODEL_ID = "prebuilt-layout"; public static void main(String... args) { try { var client = new DocumentIntelligenceClientBuilder() .credential(new AzureKeyCredential(KEY)) .endpoint(ENDPOINT) .buildClient(); var request = new AnalyzeDocumentRequest().setUrlSource("https://s29.q4cdn.com/175625835/files/doc_downloads/test.pdf"); var poller = client.beginAnalyzeDocument(MODEL_ID, null, null, null, null, null, null, request); var res = poller.getFinalResult(); res.getParagraphs().forEach(documentParagraph -> { System.out.println("Paragraph: "); System.out.println(documentParagraph.getContent()); }); } catch (Exception e) { e.printStackTrace(); } } }
错误信息
com.azure.core.exception.ResourceNotFoundException: Status code 404, "{\"error\":{\"code\":\"404\",\"message\":\"Resource not found\"}}" at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:398) at com.azure.core.implementation.http.rest.SyncRestProxy.ensureExpectedStatus(SyncRestProxy.java:133) at com.azure.core.implementation.http.rest.SyncRestProxy.handleRestReturnType(SyncRestProxy.java:210) at com.azure.core.implementation.http.rest.SyncRestProxy.invoke(SyncRestProxy.java:86) at com.azure.core.implementation.http.rest.RestProxyBase.invoke(RestProxyBase.java:124) at com.azure.core.http.rest.RestProxy.invoke(RestProxy.java:95) at jdk.proxy2/jdk.proxy2.$Proxy3.analyzeDocumentSync(Unknown Source) at com.azure.ai.documentintelligence.implementation.DocumentIntelligenceClientImpl.analyzeDocumentWithResponse(DocumentIntelligenceClientImpl.java:304) at com.azure.ai.documentintelligence.implementation.DocumentIntelligenceClientImpl.lambda$beginAnalyzeDocumentWithModel$6(DocumentIntelligenceClientImpl.java:511) at com.azure.core.util.polling.SyncPoller.lambda$createPoller$0(SyncPoller.java:227) at com.azure.core.util.polling.SimpleSyncPoller.<init>(SimpleSyncPoller.java:92) at com.azure.core.util.polling.SyncPoller.createPoller(SyncPoller.java:196) at com.azure.core.util.polling.SyncPoller.createPoller(SyncPoller.java:240) at com.azure.ai.documentintelligence.implementation.DocumentIntelligenceClientImpl.beginAnalyzeDocumentWithModel(DocumentIntelligenceClientImpl.java:510) at com.azure.ai.documentintelligence.DocumentIntelligenceClient.beginAnalyzeDocument(DocumentIntelligenceClient.java:186) at com.ariskourt.DocumentIntelligenceApp.main(DocumentIntelligenceApp.java:23)
排查建议
- 验证Endpoint格式:确认ENDPOINT是否符合Azure Document Intelligence的要求,正确格式应为
https://<your-resource-name>.documentintelligence.azure.com/(部分旧资源可能使用cognitiveservices.azure.com后缀,但beta版本SDK更适配新后缀),注意不要遗漏末尾斜杠,且资源名称、区域与Azure门户一致。 - 检查资源状态:登录Azure门户,确认Document Intelligence资源已正常创建,处于运行状态,区域配置与代码中Endpoint匹配。
- 确认API密钥有效性:验证KEY是该资源的有效访问密钥(可在Azure门户的"密钥和终结点"页面获取),无复制错误或过期情况。
- 简化方法调用参数:代码中
beginAnalyzeDocument传入多个null参数,可能因参数顺序错误导致请求异常。建议使用重载方法简化调用:var poller = client.beginAnalyzeDocument(MODEL_ID, request); - 验证目标文档可访问性:确保
urlSource指定的PDF文件可公开访问,Azure服务能够正常拉取。可通过浏览器或curl命令测试该URL是否能正常下载。 - 升级SDK版本:尝试更新至最新的beta版本SDK,新版本可能修复了404相关的兼容性问题,例如
com.azure:azure-ai-documentintelligence:1.0.0-beta.5。
内容的提问来源于stack exchange,提问作者vkourt
相关产品推荐
相关产品推荐

