Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从spring boot可执行文件jar访问部署在其他服务器上的rest点_Java_Spring_Spring Boot_Angular7_Executable Jar - Fatal编程技术网

Java 无法从spring boot可执行文件jar访问部署在其他服务器上的rest点

Java 无法从spring boot可执行文件jar访问部署在其他服务器上的rest点,java,spring,spring-boot,angular7,executable-jar,Java,Spring,Spring Boot,Angular7,Executable Jar,我让Angular应用程序在本地主机4200上运行,并访问部署在上的其余点 我已将此项放在proxy.conf.json中,并将package.json中的npm start命令更新为 "start": "ng serve --proxy-config proxy.conf.json" 局部角度应用工作良好 我已经使用SpringBoot将angular应用程序打包为可执行jar 现在我有了可执行的jar名称hello-world.jar。 它在spring boot嵌入式tomcat服务器上

我让Angular应用程序在本地主机4200上运行,并访问部署在上的其余点

我已将此项放在proxy.conf.json中,并将package.json中的npm start命令更新为

"start": "ng serve --proxy-config proxy.conf.json"
局部角度应用工作良好

我已经使用SpringBoot将angular应用程序打包为可执行jar

现在我有了可执行的jar名称hello-world.jar。 它在spring boot嵌入式tomcat服务器上启动,本地主机:8080

java -jar hello-world.jar
我在点击主机上的rest点时,在chorme开发者网络选项卡中遇到404错误

这是因为jar不知道代理配置

我应该如何使用npm start所知道的代理配置配置jar

我尝试过这个解决方案,但对我不起作用


经过太多的努力,我终于找到了解决办法。由于CORS问题,我无法使用其余服务

我已经找到了在SpringBoot和JAX-RS中开发的rest服务的解决方案

Spring Boot中的Rest服务: 在控制器中:配置CORS

@CrossOrigin(value='*', maxAge='3600')
@RestController
JAX-RS中的Rest服务 添加过滤器,即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>

克斯菲尔特
com.learn.filter.CORSFilter
克斯菲尔特
/*