我使用angular-cli创建了一个Angular项目(版本:1.0.0-beta.28.3).我使用"npm start"在开发环境中运行应用程序,应用程序在"localhost:4200"中正常运行.现在要复制生产部署,我想在本地WAMP中运行该应用程序.所以,我运行'ng build -prod',将文件从'dist'文件夹复制到WAMP的www/student目录.现在,当我通过WAMP运行项目时,我最终收到此错误:
显然,应用程序在错误的位置寻找所需的js文件.我做了一些研究,发现上下文根 - 在我的情况下'学生'必须在index.html内的"base href ="/ student"中设置.由于angular-cli的bug,每次我输入'ng build -prod',基本href被重置为"/".找到一个解决方法;键入"ng build -prod --base-href student"将基本href设置为student.
现在我遇到了一个新问题.默认页面应该显示路线'app-home'的内容,但是启动应用程序会给我:
但是,这两条路线/链接都运行良好.例如,单击"关于我们"会将网址更改为" http:// localhost:82/student/student/app-about-us "并显示相应的内容.
我很确定我的路由有问题.请帮我设置路由,以便我可以使用子网址" http:// localhost:82/student/student/app-home " 在" http:// localhost:82/student "中运行应用程序(默认)和' http:// localhost:82/student/student/app-about-us '
app.modules.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { AboutUsComponent } from './about-us/about-us.component';
import { CarComponent …Run Code Online (Sandbox Code Playgroud) 我有一个与架构有关的问题.这是一个与语言无关的问题,但是当我来自Java背景时,如果有人用Java方式引导我,对我来说会更容易.
基本上,我正在编写的中间件与基于SOAP的第三方服务进行通信.调用是异步的 - 在某种程度上,当一个服务被调用时,它返回一个响应01 - 处理; 意味着第三方已成功收到请求.在原始SOAP请求中,每次都必须提交一个回调URL,其中第三方实际发送结果.因此,调用特定服务实际上不会立即返回结果; 结果在中间件的单独HTTP端点中接收.
现在在我们的前端,我们不希望使用户体验复杂化.我们希望我们的用户调用中间件功能(通过菜单项/按钮),并立即获得结果; 并将肮脏的工作留给中间件.
请注意,从前端调用的中间件函数(比如说X())和第三方推送结果的中间件端点URL(让我们称之为Y)完全是彼此分开的.X()不得不等待,然后获取Y中抓取的结果,然后将结果返回到前端.
如何构建一个强大的解决方案来实现上述行为?图片完美地描绘了我的情况.任何建议将受到高度赞赏.
java architecture multithreading asynchronous integration-patterns
我想创建一个大小的布尔数组,用户将其作为输入.例如 - 用户可能会输入一个大数字,如1000000000000; 所以我必须创建一个大小为1000000000000的布尔数组.我面临的问题是,我不能将输入存储为int,因为它无法容纳如此大的数字 - 因此我无法创建数组.Double是一个选项.我可以将输入数字存储为double,但我不知道如何创建双数字大小的数组.这就是这个想法 -
Scanner scanner = new Scanner(System.in);
int target = scanner.nextInt();
boolean [] array_a=new boolean [(target)];
Run Code Online (Sandbox Code Playgroud)
如果目标超过int范围,它将无法工作.任何帮助表示赞赏.
更新:谢谢大家.所以你只能创建一个int的最大范围(2147483648)大小的数组,对吧?内存方面没有提到我.要采取不同的方法.
正在使用 AWS Java sdk v2 和 Spring Boot 在 localstack 中本地使用 AWS SQS FIFO 队列。
我创建了一个端点来通过一个发布者发送消息,并创建了三个端点来通过 Spring boot 控制器类中的三个使用者从队列接收/轮询消息。
我创建了具有以下属性的 FIFO 队列 -
RECEIVE_MESSAGE_WAIT_TIME_SECONDS = 20 seconds (long poll)
VISIBILITY_TIMEOUT = 60 seconds
FIFO_QUEUE = true
CONTENT_BASED_DEDUPLICATION = true
Run Code Online (Sandbox Code Playgroud)
每个消费者每次轮询请求最多可以获取 3 条消息(如果可用,则至少 1 条,最多 3 条)。
我向队列发布了 5 条消息(按顺序)。他们是 -
Message Group Id | Deduplication Id
-----------------------------------
A | A1
A | A2
A | A3
A | A4
A | A5
Run Code Online (Sandbox Code Playgroud)
从日志 -
2022-06-01 16:13:26.474 INFO 27918 --- [nio-9099-exec-1] …Run Code Online (Sandbox Code Playgroud) java amazon-sqs amazon-web-services spring-boot aws-sqs-fifo
所以我遇到了一个问题.我正在构建一个javacript文件,它将iframe附加到客户端页面(在div中).可以说,这个iframe是从http://example.com/iframe加载的.iframe的后端模块(处理表单提交;写在春季)具有一定的端点像http://example.com/url1,http://example.com/url2
现在,我只希望iframe能够与后端API进行通信.目前,我也可以从localmachine获取iframe后端API.
我遇到过referer HTTP字段,最初计划在API上设置一个referer过滤器,但后来发现这很容易被欺骗.我是否会在API上获得任何有利的CORS标头,并将原点设置为http://example.com?它会起作用,如果是的话,这是一个安全可靠的解决方案吗?还有更好的选择吗?
cross-browser spring-security cross-domain same-origin-policy spring-boot
我们使用API Gateway来公开位于AWS Lambdas. 作为授权方,CognitoAPI Gateway 中使用了用户池来对用户进行身份验证并保护受保护的端点。因此,一般流程是,用户传递下面提到的信息以通过 API 网关端点 ( /grantToken)从 cognito 获取访问令牌:
1. App client id
2. App client secret
3. username
4. password
Run Code Online (Sandbox Code Playgroud)
获得 后access_token,用户在访问受保护端点时在标头中传递此授权令牌。Cognito 自动授权用户,并将请求重定向到特定的 AWS Lambda。这一切工作正常。
我想知道的是,在 lambda 中,来自授权令牌(在标头中传递) - 如何确定传递了哪个用户的令牌?还有其他方法可以确定授权用户的身份吗?AWS Cognito 在这种情况下有什么用吗?
注意:如果我可以App client id从传递的授权令牌中获取,它将满足我的目的。
authorization amazon-web-services amazon-cognito aws-lambda aws-api-gateway
我仍然在码头世界中找到自己的脚。我正在尝试 dockerize 我的小宠物项目。前端是一个 vue-cli 应用程序,它与包含 Spring Boot 制作的宁静 API 的后端通信。
所以我的方法是为后端和前端声明两个单独的 dockerfile,并通过一个 docker compose 文件将它们组合起来。所以文件夹结构是 -
backend/
- Dockerfile
frontend/
- Dockerfile
docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
由于前端需要能够调用后端服务,我创建了一个桥接网络并在它们之间共享网络。这是我的 docker compose 文件 -
version: "2"
services:
backend:
build: backend/.
networks:
- movie-network
ports:
- "8098:8098"
frontend:
build: frontend/.
ports:
- "8812:8080"
networks:
- movie-network
networks:
movie-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
我在后端公开了一个名为/api/findAll. 现在,如果前端服务通过http://localhost:8098:/api/findAll(主机网络)调用 API ,我可以从我的浏览器(http://localhost:8812)查看它,一切正常。
但是如果前端使用backend:8098/api/findAll;调用相同的 API 利用桥接网络 - 它在我的浏览器中出错 -
如果我docker exec在前端做 a并ping 后端,则ping 成功
那么,为什么我的浏览器(http://localhost:8812 …
java ×4
spring-boot ×2
amazon-sqs ×1
angular ×1
angular-cli ×1
architecture ×1
asynchronous ×1
aws-lambda ×1
aws-sqs-fifo ×1
cross-domain ×1
docker ×1
dockerfile ×1
vue.js ×1