Невозможно получить доступ к точке отдыха, развернутой на другом сервере из исполняемого файла JAR весенней загрузки - PullRequest
0 голосов
/ 05 июня 2019

У меня приложение Angular запускается локально на localhost: 4200 и получает доступ к остальным точкам, развернутым на https://abc.xyz:20000.

Я поместил эту запись в proxy.conf.json и обновил команду запуска npm в package.json для

"start": "ng serve --proxy-config proxy.conf.json"

Локальное угловое приложение работает нормально.

Я упаковал угловое приложение как исполняемый файл jar с использованием весенней загрузки.

Теперь у меня есть имя исполняемого файла jar hello-world.jar.Он запускается на встроенном сервере весенней загрузки tomcat на локальном хосте: 8080.

java -jar hello-world.jar

Я получаю ошибку 404 на вкладке сети разработчика chorme при попадании в точки отдыха, расположенные на https://abc.xyz:20000.

из-за jar не знает о конфигурации прокси.

Как мне настроить jar с конфигурацией прокси, которую угловые знают при запуске npm.

Я пробовал это решение, но у меня это не сработало.

Указание прокси-сервера http с помощью spring-boot

1 Ответ

0 голосов
/ 14 июня 2019

После слишком большой борьбы я могу найти решение. Мне не удалось воспользоваться другими услугами из-за проблемы с CORS.

Я нашел решение для обеих служб отдыха, разработанных в Spring boot и JAX-RS.

Услуги по отдыху в Spring Boot: В контроллере: настроить CORS

@CrossOrigin(value='*', maxAge='3600')
@RestController

Услуги по отдыху в JAX-RS Добавьте фильтр, то есть 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>
...