在 tomcat 上运行的 jHipster 客户端未与在开发模式 mvnw 下运行的服务器通信
Posted
技术标签:
【中文标题】在 tomcat 上运行的 jHipster 客户端未与在开发模式 mvnw 下运行的服务器通信【英文标题】:jHipster client running on tomcat is not communicating with server which is running in dev mode mvnw 【发布时间】:2018-03-11 00:17:53 【问题描述】:我已经分别生成了我的 jHipster 客户端和服务器,并使用 yarn run build 命令构建了客户端以用于生产,并在 tomcatwww 文件夹/strong> 在端口 8989 上运行,而我的服务器在 localhost:8080 上使用 ./mvnw 运行。问题是我的客户端没有与服务器通信,我已经通过邮递员请求我的服务器,它成功地与服务器通信。
我做错了吗?我是 jHipster 的新手,请指导我。我无法确定问题所在。
JHipster 4.7.0、Tomcat 8
【问题讨论】:
Tomcat 正确启动 www 文件夹,但应用没有向服务器发送请求 现在我已经按照 [@Gael marizou] 的建议升级了 jHipster 并下载了一个新客户端,但它仍然没有与服务器通信。这是来自 tomcat 127.0.0.1 - - [29/Sep/2017:18:55:27 +0500] "POST /www/oauth/token HTTP/1.1" 404 1024 的一些日志 ... .........................为什么即使我设置了 SERVER_API_URL: "localhost:8080" 它仍然使用 www 【参考方案1】:JHipster Angular 代码期望 API 由与 javascript 应用程序相同的服务器提供服务。对您而言,情况并非如此,因为它们位于不同的端口上。
所以,有两种选择:
编辑 javascript 以更改 API 的基本 URL(请参阅webpack/webpack.common.js
中的 SERVER_API_URL
写入 app.constants.ts
)但您需要升级到 JHipster 4.9.0
在您的 2 个服务器前使用反向代理(类似于 JHipster 对 webpack 所做的,它提供客户端代码并代理对 java spring boot 应用程序的 API 调用)。
【讨论】:
感谢您回复@Gael Marziou 的第一个选项,因为我有单独的客户端和服务器,我已经在不同的机器上进行了测试,一个作为客户端,第二个作为服务器,通过更改它的 SERVER_API_URL 它工作适合纱线启动(在开发模式下运行客户端)。我将尝试将项目更新到 JHipster 4.9.0,以便在 tomcat 中运行我的客户端。 我已经升级了 jhipster 并下载了一个新的客户端,但它仍然没有与服务器通信。这是来自 tomcat 127.0.0.1 - - [29/Sep/2017:18:55:27 +0500] "POST /www/oauth/token HTTP/1.1" 404 1024 为什么它的一些日志即使我设置了 SERVER_API_URL:"http://localhost:8080/"
@Gael marizou,仍在使用 www
“下载了新客户端”是什么意思?无论如何,这只是意味着 SERVER_API_URL 可能不会用于此调用,请在 typescript 代码中搜索并修复它,然后考虑提交拉取请求。
感谢您的回复。我找到了问题并修复了它,现在提交拉取请求,虽然我以前从未提交过拉取请求。
auth-oauth2.service.ts 在第 32 行的 post 请求中缺少 SERVER_API_URL 常量。由于我从未提交过拉取请求,因此对我来说很复杂,如果有人可以提交更改会很棒。我所做的是 1) 使用 --> yo jhipster:client --auth=oauth2 生成 jHipster 客户端并在第 32 行更新 auth-oauth2.service.ts 文件以上是关于在 tomcat 上运行的 jHipster 客户端未与在开发模式 mvnw 下运行的服务器通信的主要内容,如果未能解决你的问题,请参考以下文章
jhipster 生成的应用程序可以在没有纱线启动的情况下正常工作,只需在 8080 上运行,那么为啥要在端口 9000 上运行
如何在 Jhipster (spring boot + angular) 应用程序上设置上下文路径