java - 无法从 Spring Boot 可执行 jar 访问部署在其他服务器上的休息点
问题描述
我有 Angular 应用程序在 localhost:4200 本地运行并访问部署在https://abc.xyz:20000上的其余点。
我已将此条目放在 proxy.conf.json 中,并将 package.json 中的 npm start 命令更新为
"start": "ng serve --proxy-config proxy.conf.json"
局部角度应用程序工作正常。
我已经使用 Spring Boot 将 Angular 应用程序打包为可执行 jar。
现在我有了可执行的 jar 名称 hello-world.jar。它在 localhost:8080 的 Spring Boot 嵌入式 tomcat 服务器上启动。
java -jar hello-world.jar
在访问https://abc.xyz:20000上托管的休息点时,我在 chorme 开发人员网络选项卡中收到 404 错误。
这是由于 jar 不知道代理配置。
我应该如何使用 Angular 使用 npm start 知道的代理配置来配置 jar。
我已经尝试过这个解决方案,但这对我不起作用。
解决方案
经过太多的努力,我能够找到解决方案。由于 CORS 问题,我无法使用其余服务。
我已经找到了在 Spring boot 和 JAX-RS 中开发的其余服务的解决方案。
Spring Boot 中的休息服务: 在控制器中:配置 CORS
@CrossOrigin(value='*', maxAge='3600')
@RestController
JAX-RS 中 的 Rest Services 添加过滤器,即 CORSFilter.java
package com.learn.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CORSFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
// Authorize (allow) all domains to consume the content
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Origin", "*");
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Headers", "*");
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST");
// pass the request along the filter chain
chain.doFilter(request, servletResponse);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
在web.xml中添加条目
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>com.learn.filter.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
推荐阅读
- java - 矩阵打印不正确
- java - 在HashMap中添加新的键值对时,插入顺序会发生什么变化?
- javascript - 如何验证 MarkLogic 中的 dateTime 输入?
- python - 用 openpyxl 覆盖整个列
- python - 在熊猫中使用单独的时间戳列进行最小/最大分组
- java - 设置 bean 属性“mongoOperations”时无法解析对 bean“mongoTemplate”的引用
- java - [Ljava.lang.String;@7c5da1bepackage.name.user.categories.DAO
- python - FiPy Hollow 圆柱形 O'Grid 3D 生长扫描网格划分 [CylindricalGrid2D]
- javascript - 移除节点并重绘力导向图
- flutter - animated_text_kit:flutter 中的包。有人使用这个流行的软件包吗?如何同步几个文本的动画?