Anduvimos buscando por distintos espacios y de este modo brindarte la solución para tu dilema, si continúas con inquietudes deja la inquietud y contestamos porque estamos para servirte.
Solución:
Paso 1: crear compilación para Angular
Desde la estructura del proyecto compartido, parece que tiene tanto el código de backend como el de frontend en las mismas ubicaciones. La forma ideal es crear el build / artficates para el angular que crea la carpeta dist dentro de su dictornar angular que consiste en sus activos de UI. Para crear el mismo, puede presionar los siguientes comandos según su entorno y configuraciones
ng build --configuration=
ng build --prod
Paso 2: Integrar la interfaz de usuario con Spring Boot
Entonces puede crear los nombres de una carpeta static dentro de src / main / resources y pegue los activos de la interfaz de usuario (archivos dentro de la carpeta dist) dentro de este static carpeta.
Paso 3: Configuraciones de implementación
Paso 1: Cambie la opción de embalaje a guerra en pom.xml
Paso 2: se extiende SpringBootServletInitializer
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* This is a helper Java class that provides an alternative to creating a @code web.xml.
* This will be invoked only when the application is deployed to a Servlet container like Tomcat, JBoss etc.
*/
public class ApplicationWebXml extends SpringBootServletInitializer
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
return application.sources(ApplicationApp.class);
Paso 3: Crear GUERRA expediente
mvn clean install
¡Y ahí vamos! Podemos acceder a los puntos finales en
http://localhost:8080/context-path/endpoint OR
http://localhost:8080/war-filename/endpoint
También podemos crear el perfil para war
como a continuación
3.2.3
org.springframework.boot
spring-boot-maven-plugin
org.apache.maven.plugins
maven-war-plugin
$maven-war-plugin.version
war
package
WEB-INF/**,META-INF/**
false
target/classes/static/
src/main/webapp
WEB-INF/**
war
org.apache.maven.plugins
maven-war-plugin
Podría ser útil
Implementar WAR en Tomcat (Spring Boot + Angular)
Es posible agrupar todo en una guerra, pero lo veo más conveniente no poner diferentes aplicaciones (backend war y frontend dist content) mixed juntos como un lío, donde ambos ya estamos viendo qué parte responde y dónde.
Más fácil, mucho más fácil en realidad, es aplicar la siguiente configuración:
...
donde el Content
la etiqueta dice dónde vive la interfaz. Frontend en angular, por brillante que parezca, es un static página para Tomcat como servidor. El backend, que es Java supongo, seguramente necesita activamente un servidor y tiene que ser servido desde la guerra.
Con el docBase dado, el contenido dist se copia y pega manualmente en /home/stuff
carpeta y se muestra en http: // localhost: 8080 /static/ sendero. No debería necesitar index.html después de la barra, pero si por alguna razón lo necesita, simplemente agréguelo. Estos valores de ubicación y ruta del archivo se pueden configurar libremente a su gusto. También vale la pena mencionar que otras partes de la configuración solo ilustran la ubicación en el archivo de configuración.
El archivo de configuración utilizado es el de Tomcat. server.xml
expediente.
Las rutas de la aplicación de backend que se implementan se pueden ver en la consola de administración de Tomcat.
Fuentes:
[1] https://www.moreofless.co.uk/static-contenido-páginas-web-imágenes-tomcat-outside-war /
Todos los pasos que hiciste como dijo Patel Romil son correctos. El único error que estás cometiendo es llamar a la API en la interfaz. No agregue ninguna ruta de contexto en la URL como agregó en application.properties.
Si su archivo WAR se implementó en la ruta wabITSpring
entonces su URL será así en index.html
var cfgApiBaseUrl = "https://localhost:8080/wabITSpring/"
A su aplicación no le importa la ruta de contexto y no tendrá ninguna referencia a ella. Si su controlador define una ruta de / products, Tomcat lo servirá en / wabITSpring / products.
var cfgApiBaseUrl = "https://localhost:8080/wabITSpring/products"
Haga esto y su aplicación se ejecutará correctamente.
Acuérdate de que tienes permiso de esclarecer tu experiencia si te ayudó.