在 Payara Micro 中运行 LangChain4j AI 应用:Payara Starter 项目实战指南

发布时间:2026/10/3 8:38:40
在 Payara Micro 中运行 LangChain4j AI 应用:Payara Starter 项目实战指南 示例工程【免费下载链接】langchain4j-examples项目地址https://gitcode.com/GitHub_Trending/la/langchain4j-examples点击查看免费下载导读本指南以payara-micro-example模块为主线讲解如何基于 Payara Starter 生成的项目骨架在 Payara Micro 微服务容器中打包、启动一个集成 LangChain4j 的 Jakarta EE 10 / MicroProfile 应用。读完本文你将掌握 Payara Micro 的运行原理、payara-micro:dev开发模式的完整命令与参数含义、项目依赖与插件配置的作用以及如何通过自带的前端聊天界面和 Swagger UI 验证应用是否正常运行。项目概览Payara Starter 生成的 LangChain4j 示例payara-micro-example是一个由 Payara Starter 生成的示例应用归属于 langchain4j-examples 仓库。它展示了典型的 Payara Micro 项目形态打包方式WAR 包packagingwar/packaging由 Payara Micro 运行时直接加载技术栈Jakarta EE 10jakarta.platform:jakarta.jakartaee-api:10.0.0 MicroProfile Payara API编译目标为 Java 21AI 能力通过dev.langchain4j:langchain4j、langchain4j-open-ai与langchain4j-google-ai-gemini三个核心依赖版本1.17.0接入 LLM前端界面自带一个AI Chat Interface页面index.html支持 OpenAI、Gemini、DeepSeek 三种模型提供商切换API 文档集成 Swagger UI提供/openapi的 OpenAPI 端点浏览页面。模块的源码结构如下payara-micro-example/ ├── mvnw / mvnw.cmd # Maven Wrapper ├── pom.xml # 构建与插件配置 ├── README.md # 官方快速开始文档 └── src/ ├── main/ │ ├── java/dev/langchain4j/example/filter/CORSFilter.java │ └── webapp/ │ ├── WEB-INF/{beans.xml, web.xml} │ ├── images/payara-fish-logo.svg │ ├── index.html │ └── swagger.html └── test/ # 预留测试目录环境准备Prerequisites根据官方 README本地运行前需要准备依赖说明Java SE 21示例项目以 Java 21 为编译目标maven.compiler.release21README 同时说明官方在 Java SE 8、11、17、21 上做过运行测试Maven用于执行构建与 Payara Micro 插件命令需要说明的是当前仓库在payara-micro-example目录下提供了 Maven Wrappermvnw与mvnw.cmd因此即便本机没有全局安装 Maven也可以直接使用./mvnw完成同样的构建与启动流程命令效果与 README 中的./mvn一致。启动应用核心命令payara-micro:dev详解官方 README 给出的启动步骤非常简洁核心就一条命令./mvn clean package payara-micro:dev这条命令由两部分组成理解其含义对排查问题很有帮助clean package先清理target/目录再执行完整的编译、打包流程最终产出 WAR 文件。在 pom.xml 中可以看到配套的构建插件maven-compiler-plugin:3.13.0按maven.compiler.release21编译源码maven-war-plugin:3.4.0生成 WAR 包并设置failOnMissingWebXmlfalse即允许在没有传统web.xml描述符的情况下打包现代 Jakarta EE 应用普遍如此本项目的web.xml仅声明了欢迎页面。payara-micro:dev调用fish.payara.maven.plugins:payara-micro-maven-plugin:2.4的dev目标启动 Payara Micro 开发模式。该插件的关键配置来自 pom.xml 的payara-micro-maven-plugin配置块如下配置项值作用payaraVersion${payara.version}即6.2025.5指定使用的 Payara Micro 运行时版本deployWartrue自动部署构建产出的 WAR 包commandLineOptions--autoBindHttp让 Payara Micro 自动绑定可用的 HTTP 端口默认策略contextRoot/应用上下文根路径设为根目录因此可通过http://localhost:8080/直接访问启动成功后浏览器访问http://localhost:8080/即可打开应用首页。启动后的验证入口AI 聊天界面与 Swagger UI1. AI Chat Interface首页首页 index.html 是一个纯前端实现的聊天界面提供OpenAI / Gemini / DeepSeek三个模型提供商的下拉选项发送消息时前端会向http://localhost:8080/api/{provider}/chat发起带message查询参数的 GET 请求例如http://localhost:8080/api/openai/chat?messagehello响应以纯文本返回前端会将 Markdown 风格的代码块、标题、列表渲染为富文本样式。这表明该 WAR 应用中应当存在JAX-RS端点/api/openai/chat、/api/gemini/chat、/api/deepseek/chat分别代理到 langchain4j 的 OpenAI 与 Gemini 模型。虽然当前模块的src/main/java下仅包含 CORS 过滤器源码但结合 pom.xml 中同时引入langchain4j-open-ai与langchain4j-google-ai-gemini两个模型提供方依赖可以推断出该界面对应的后端服务是按此结构设计的。2. Swagger UI 接口文档项目还集成了 Swagger UI。构建时由download-maven-plugin在generate-resources阶段从 Swagger 官方仓库下载swagger-ui发行包再由maven-resources-plugin在process-resources阶段将其复制进 WAR 包因此应用内自带完整的 Swagger 前端资源。页面 swagger.html 将文档源指向http://localhost:8080/openapi启动后访问该页面即可在浏览器中浏览、调试应用暴露的所有 REST 端点。3. 跨域支持src/main/java/dev/langchain4j/example/filter/CORSFilter.java 是一个标注了Provider的 JAX-RS 响应过滤器为所有接口响应添加Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Max-Age: -1 Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept它的存在保证前端页面与后端 REST 服务在跨源访问时不会被浏览器拦截是前后端分离调试例如本地直接打开index.html得以顺利进行的关键一环。深入解读pom.xml 的关键依赖与运行机制依赖三件套Jakarta EE、MicroProfile 与 Payarapom.xml 通过dependencyManagement引入fish.payara.api:payara-bom与org.jboss.arquillian:arquillian-bom统一管理版本。核心运行时依赖分三类LangChain4j 系列1.17.0langchain4j核心库、langchain4j-open-aiOpenAI 模型适配、langchain4j-google-ai-geminiGemini 模型适配Jakarta / MicroProfile APIprovided作用域jakarta.platform:jakarta.jakartaee-api、org.eclipse.microprofile:microprofile、fish.payara.api:payara-api。这些 API 由 Payara Micro 运行时在部署时提供因此编译期标记为provided测试依赖JUnit 4.13.2、Arquillian JUnit 容器 1.10.0.Final 与 Jersey 客户端/HK2用于集成测试maven-surefire-plugin:3.2.5还通过系统属性payara.microJar将测试指向target/payara-micro-${payara.version}.jar。测试 Profilepayara-micro-managedpom 中定义了一个默认激活activeByDefaulttrue的payara-micro-managedprofile用于测试场景引入fish.payara.arquillian:arquillian-payara-micro-managed作为测试容器在process-test-classes阶段通过maven-dependency-plugin将指定版本的 Payara Micro 运行时下载并复制到target/payara-micro-${payara.version}.jar供 Arquillian 管理启动。这意味着当项目补充集成测试后执行mvn test会自动下载 Payara Micro 运行时并启动服务实例进行验证。仓库与版本管理pom 额外配置了 Payara 官方 Nexus 制品仓库https://nexus.dev.payara.fish/repository/payara-artifacts仅启用 release 版本用于拉取 Payara 相关构件Payara 版本通过payara.version属性当前为6.2025.5统一控制便于升级。常见问题与排障建议现象可能原因与排查方向./mvn命令不存在本机未安装 Maven 或未加入 PATH直接改用仓库自带的./mvnwWindows 用mvnw.cmd即可编译报错与 Java 版本相关项目要求 JDK 21maven.compiler.release21请检查java -version必要时通过JAVA_HOME指向 JDK 21访问首页 404确认命令是否包含payara-micro:dev目标且deployWartrue并核对插件中的contextRoot/配置默认访问地址应为http://localhost:8080/聊天界面请求失败检查/api/{provider}/chat后端端点是否已实现并部署确认 CORS 过滤器已生效确认对应模型提供商的 API Key 等凭据已正确配置需要查看接口清单访问/swagger.htmlSwagger UI 会从http://localhost:8080/openapi拉取 OpenAPI 文档小结payara-micro-example展示了从 Payara Starter 骨架到可运行的 AI 聊天应用的完整链路WAR 打包 Payara Micro 运行时 payara-micro:dev开发模式配合 LangChain4j 的多模型依赖、内置 Swagger 与 CORS 支持构成了一个轻量、可快速上手的 Jakarta EE 微服务 AI 应用模板。无论是学习 Payara Micro 的运行机制还是作为 LangChain4j 在 Java 微服务容器中落地的起点这个模块都提供了清晰、可复现的实践路径。赞分享示例工程【免费下载链接】langchain4j-examples项目地址https://gitcode.com/GitHub_Trending/la/langchain4j-examples点击查看免费下载相关推荐基于 DGL 的 Cluster-GraphSAGE 在 OGB 数据集上的实战用 Metis 图划分实现大规模节点分类基于 DGL 的 Cluster GraphSAGE 在 OGB 数据集上的实战用 Metis 图划分实现大规模节点分类 导读 本文围绕 DGL 官方示例 e人工智能机器学习深度学习图计算终极指南Pinpoint监控Payara Micro在Kubernetes平台的微服务容器追踪终极指南Pinpoint监控Payara Micro在Kubernetes平台的微服务容器追踪 在现代微服务架构中 分布式追踪 已成为确保系统稳定性的关键能后端可观测性APM链路追踪微服务Moonlight-Switch终极PC游戏串流方案让Switch变身移动游戏终端Moonlight Switch终极PC游戏串流方案让Switch变身移动游戏终端 你是否曾梦想在任天堂Switch上畅玩《赛博朋克2077》或《艾尔登法环音视频网络上一篇Audiveris 命令行接口CLI完整指南参数、批处理与进阶用法下一篇GDevelop Platformer 引擎技术详解地面跟随、坡度攀爬与跳跃轨迹的数学建模创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考