Java 构建静止角度应用程序的正确方法是什么?

Java 构建静止角度应用程序的正确方法是什么?,java,rest,angular,vert.x,Java,Rest,Angular,Vert.x,我有一些java应用程序。它为REST客户端提供json,并使用localhost:8080来服务请求 我还有angular 2应用程序,它使用localhost:3000来工作(我假设我可以将typescript文件编译成js并在没有lite服务器的情况下使用,但不能: zone.js@0.6.25?main=browser:269 Uncaught Error: More tasks executed then were scheduled. index.html:20 Error: Err

我有一些java应用程序。它为REST客户端提供json,并使用localhost:8080来服务请求

我还有angular 2应用程序,它使用localhost:3000来工作(我假设我可以将typescript文件编译成js并在没有lite服务器的情况下使用,但不能:

zone.js@0.6.25?main=browser:269 Uncaught Error: More tasks executed then were scheduled.
index.html:20 Error: Error: XHR error loading file:///C:/dev/angular2app/app/main.js(…)
)。我的angular服务正在尝试从以下url获取json表单服务器:

http://localhost:8080/api/test
当然,我得到了关于禁止跨域请求的错误。然而,如果我在和java应用程序相同的端口上启动angular应用程序,其中一个将没有位置(端口忙等等)


请问,谁能解释构建这两个应用程序的正确架构方法?

在您的案例中,AngularJS应用程序,即JS、HTML文件等需要打包到WAR文件中(我假设它是WAR文件,因为您使用的是Tomcat 8080),否则下面的概念也适用。一旦将应用程序部署到容器上(假设容器在8080上运行),您将使用可能的URL请求应用程序。在这种情况下,不存在端口冲突(实际上冲突场景不适用)。您提到了您在端口3000上的angular工作,我假设您已经将服务URL硬编码为(可能)。现在,由于服务器在8080上运行,因此这将无法工作。您需要做的是在应用程序中相对化服务调用URL,或者在应用程序中相对化服务URL的硬代码。还有另一个考虑因素,如果您使用IP通过浏览器访问应用程序,并且在服务调用URL中使用硬编码的localhost,那么跨域问题就会出现。要获得此信息,请将URL用作。。。从浏览器访问应用程序。但是,如果在Angular应用程序中相对化服务调用URL,则可以从浏览器中使用IP或localhost