我正在开发一个React JS应用程序,它从我的Spring boot API中获取所有数据。
一切在本地运行良好。(Spring boot API在端口4000上,React JS在端口3000上,代理值为“http://localhost/4000”)
我设法创建了一个war文件,其中包括我的React js应用程序和Spring boot API。(在端口8080上运行)
我将war文件部署在一个状态为“OK”的本地tomcat服务器上。
Api调用工作得很好(例如http://localhost:8080/webfolder/Api/categories)
但是我的React应用程序无法正确地进行api调用(http://localhost:8080/api/categories,应该是http://localhost:8080/webfolder/api/categories),如下图所示:
<groupId>com.fox</groupId>
<artifactId>events-platform</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>events-platform</name>
<description>Events-platform built using React JS and Spring boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version><!--$NO-MVN-MAN-VER$-->
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-agroal</artifactId>
<version>5.4.21.Final</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<type>maven-plugin</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<workingDirectory>${project.basedir}/src/main/webapp/front-end</workingDirectory>
<installDirectory>target</installDirectory>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v14.5.0</nodeVersion>
<npmVersion>6.14.5</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/classes/public">
<fileset dir="${project.basedir}/src/main/webapp/front-end/build"/>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我在前端的API调用的实例:
从测试中显示的情况来看,API使用/webfolder
上下文,而ReactJS客户机使用根上下文/
。
您可以将客户机改为使用/webfolder
上下文,或者将API配置为使用根上下文/
。
更新2020-10-08-12:20
const API_ROOT = '/webfolder/api'
useEffect(() => {
axios.get(`${API_ROOT}/spaces`).then(...).catch(...)
axios.get(`${API_ROOT}/categories`).then(...).catch(...)
})
我试图在Tomcat上通过eclipse运行一个项目文件。现在服务器启动了,但是当我试图访问服务器时(使用localhost:8080),我得到了一个404错误。查看Eclipse中的服务器控制台,我看到了一些奇怪的消息,希望你们中的一个能够理解它们。信息如下。谢了! 信息:在java.library.path:C:\program files\java\jre6\bin;C:\windows\s
尽管CAS服务器在Tomcat下工作得很好,但我有一些问题要使它在WebLogic12c下工作。在Weblogic上部署之前,我遵循以下指南:https://github.com/gentics/gentics-sso-cas/wiki/oracle-weblogic-configuration在webcontent/web-inf/with content中添加文件Weblogic.xml:
关于我以前的问题,我在Linux上运行企业级web应用程序时遇到了一些问题。在投资一台真正的登台机之前,我想我应该在Raspbery Pi上试一试,但现在,我们在一台真正的Debian计算机上运行该应用程序。 这个问题和我前面的问题一样。 起初,我认为这更像是tomcat的问题,但现在,我认为这是一个 <罢工> 覆盆子皮 Linux问题。 我将Spring bean定义为; 它给了我,说明没有定义
我正在尝试让Appfuse+Tomcat+jRebel工作。 我看着问题的标题,@Tech Junkie和@CPU100确实有最好的答案,但不是针对我遇到的场景。(我想知道运行的是我安装的tomcat还是“项目盗用的”tomcat)
我正在尝试让Appfuse+tomcat+jRebel工作。 Appfuse默认使用Cargo下载tomcat(ver.7.0.33)并将应用程序部署到其中。我希望使用已经安装的tomcat(ver.7.0.27)而不是下载的。我根据appfuse常见问题进行了更改。 使用进行部署后,我如何知道实际运行的tomcat确实是7.0.27? 我曾经键入一个错误的URL(例如localhost:8080
我正在尝试在Centos tomcat7上托管一个网站,如果我在端口80上运行tomcat7,一切正常,即74.208.164.45,但如果我想使用https://74.208.164.45/,它不起作用,但如果我这样尝试https://74.208.164.45:8443/添加密钥库之后,它就可以正常工作了。 所以,我需要一种在80和https上运行tomcat的方法,即https://74.2