我知道托管bean的工作方式类似于控制器,因为您唯一的任务是将视图层与模型"链接"起来.
要使用bean作为托管bean,我必须声明@ManagedBean注释,这样做我可以直接与bean通信JSF.
如果我想在这个managedBean中注入一些组件(来自Spring),我有两种可能的方法:
在ManagedBean中选择属性(如"BasicDAO dao")并@ManagedProperty(#{"basicDAO"})在属性上方声明.这样做,我"basicDAO"在ManagedBean中从Spring 注入bean .
在ManagedBean Class中声明了@Controller,然后我将拥有@ManagedBean和@Controller注释一起.在物业中"BasicDAO dao"我必须使用@AutowiredSpring.
我的理解是否正确?
我正在尝试通过 Javascript 向 REST 端点发送授权令牌承载,所以我这样做:
$.ajax( {
url: 'http://localhost:8080/resourceserver/protected-no-scope',
type: 'GET',
beforeSend : function( xhr ) {
xhr.setRequestHeader( "Authorization", "Bearer " + token );
},
success: function( response ) {
console.log(response);
}
Run Code Online (Sandbox Code Playgroud)
我的端点在 SpringBoot 容器下运行,所以我正在获取 HttpServletRequest 并尝试获取 AUthorization Header 但始终为空:
static Authentication getAuthentication(HttpServletRequest request) {
String token = request.getHeader(HEADER_STRING);
//token is always null
...
Run Code Online (Sandbox Code Playgroud)
编辑 1 这是客户端(浏览器
OPTIONS http://localhost:8080/resourceserver/protected-no-scope 403 ()
Failed to load http://localhost:8080/resourceserver/protected-no-scope: Response for preflight has invalid HTTP status code 403.
Run Code Online (Sandbox Code Playgroud)
编辑 2 要在后端启用 CORS,我在 spring 中使用以下注释: …
我现在刚刚在 Intellij 中开始了一个新项目,使用 Spring Boot ver 2.1.3 和 Flyway 5.2.4 和 Java 11。
尝试开始我的项目后,我得到了:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is java.lang.IllegalStateException: Cannot find migrations location in: [classpath:db/migration] (please add migrations or check your Flyway configuration)
Run Code Online (Sandbox Code Playgroud)
我有以下文件夹:
如您所见,我有“db/migration”但没有任何迁移,我现在才开始。调试 FlywayAutoConfiguration 类,我得到以下信息:
因此,我尝试返回“类路径:”中的所有文件,请参阅:
请注意,我只有“application.properties”文件。
我对使用 OAuth 2.0 作为授权方法和使用 OpenID Connect 作为身份验证方法感到困惑。
据我所知,OAuth 2.0只是一种授权方法。换句话说,这是请求 ACCESS_TOKEN 并接收此 ACCESS_TOKEN 的过程,如下图黄色椭圆所示:(简化)
在 OAuth 2.0 客户端从授权服务器检索 ACCESS_TOKEN 之前,该服务器应验证用户是否允许,这是 OAuth 2.0 不关心的身份验证过程。
当 OpenID Connect 包含在混合中时,它也允许使用身份验证方法,但据我所知,OpenID Connect 只是在 JWT 令牌中添加一个“声明”,该令牌保存有关正在使用该服务的用户的信息,例如:电子邮件、姓名和其他的。
我的问题是:
我有一个名为"A"的JAR项目,它有一些将由wildfly 10提供的库:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.core.version}</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我有另一个名为"B"的项目,它是一个WAR项目.第二个项目不应该再次插入hibernate依赖项,但如果我不这样做,我就不能使用@Entity和其他类.我应该再次提供项目"B"中的"重新导入"hibernate-core.有没有办法从项目"A"继承它?
我正在尝试执行一个简单的 PY 文件,但收到以下错误:
Traceback (most recent call last):
File "docker_pull.py", line 8, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Run Code Online (Sandbox Code Playgroud)
查看 Python 安装文件夹,我在以下位置找到了 requests 模块: C:\Program Files (x86)\Python 3.7.1\Lib\site-packages\pip\_vendor\requests。如何强制 Python 使用已安装的模块?
PS:我的这台机器没有互联网连接。
我想了解kubernetes背后的一些概念,所以我有以下几点:
在端口32134上公开nginx的服务,所以我可以访问每个节点:
那么,让我们怀疑:
做一个kubectl describe pod nginx-001我在node01下运行这个pod .对pod nginx-002执行相同的命令我也在node01下运行了这个pod .那么,如果我的pod只在一个节点下运行,我怎么能在两个URL(node01和node02)中获得HTTP 200?Node02不应该响应,因为没有运行任何nginx,对吧?
看着kubctl logs -f nginx-001我得到了所有访问请求的日志.奇怪的是:无论如果我点击http://node01或者http://node02我总是在nginx-001 POD中获取日志,其他pod(nginx-002)永远不会在日志中获取请求.好像ks8总是将所有请求重定向到nginx-001而忘记了另一个pod.
重要提示 我正在使用Digital Ocean Kubernetes服务
我正在尝试使用当前迭代<p:dataTable var>作为托管bean的属性<f:setPropertyActionListener>.但是,它始终设置为null.
观点dentistas.xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<ui:composition template="/templates/template.xhtml">
<ui:define name="content">
<h:form id="formDentistas">
<p:growl autoUpdate="true" />
<p:commandButton icon="ui-icon-plus" value="Cadastrar"
id="cadastrar" oncomplete="dialogCadastrar.show()" />
<p:dataTable var="dentista" value="#{dentistaMB.dentistas}"
paginator="true" emptyMessage="Não foi encontrado nenhum registro"
rows="10" id="dataTableDentistas">
<f:facet name="header">Lista de Dentistas</f:facet>
<p:column headerText="Nome" sortBy="nome" filterBy="nome" id="nome"
width="200px">
#{dentista.pessoaFisica.nome}
</p:column>
<p:column headerText="Data Nascimento" sortBy="dataNascimento"
filterBy="dataNascimento" id="dataNascimento" width="60px">
#{dentista.pessoaFisica.dataNascimento}
</p:column>
<p:column headerText="CRO" sortBy="cro" filterBy="cro" id="cro" …Run Code Online (Sandbox Code Playgroud) 我试图阻止访问我的 PostgreSQL 并只允许访问本地主机和我的机器外部 IP,例如:“172.211.xx.xx”。该 IP 由我的 ISP(Internet 服务提供商)提供。
在postgresql.conf我设置以下行:
listen_addresses = '179.211.xx.xx'
Run Code Online (Sandbox Code Playgroud)
但是我无法从我的机器连接到数据库。我得到“服务器不听”。如果我改为:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
一切正常,但我做不到。我只需要启用对这个 IP 的访问。这是我的项目的安全要求。
我的pg_hba.conf:
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud) 我有一个Eureka Server在默认的localhost主机和端口8761上运行,因此我尝试通过以下方式更改此默认配置:
server:
port: 6000
servlet:
context-path: /myeureka
eureka:
client:
register-with-eureka: false
fetch-registry: false
Run Code Online (Sandbox Code Playgroud)
但是以这种方式,仅使用默认配置就无法访问eureka仪表板:
server:
port: 8761
eureka:
client:
register-with-eureka: false
fetch-registry: false
Run Code Online (Sandbox Code Playgroud)
在我的客户端中,同样的事情发生了,我无法指向不同于默认值的另一个eureka服务器(localhost:8761),请参阅我的配置:
server:
port: 7000
servlet:
context-path: /client-eureka
spring:
application:
name: client-eureka
eureka:
instance:
prefer-ip-address: true
client:
eureka-server-port: 6000
eureka-server-u-r-l-context: /myeureka
Run Code Online (Sandbox Code Playgroud)
在客户端日志中查找,我得到以下信息:
2018-09-01 09:19:37.175 INFO 4931 --- [ main] c.n.eureka.cluster.PeerEurekaNodes : Replica node URL: http://localhost:8761/eureka/
Run Code Online (Sandbox Code Playgroud)
无论我在客户端中配置什么端口或主机,都应始终尝试达到默认值。
重要提示:我正在此版本中使用eureka:https : //mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server/2.0.1.RELEASE
好吧,我在我的 Digital Ocean VPS 中创建了一个私人跑步者。这个私人跑步者正在使用shell executor,这是我的 gitlab-ci.yml 文件:
variables:
VERSION_NAME: ${CI_COMMIT_REF_NAME}-${CI_CONCURRENT_ID}
before_script:
- docker info
stages:
- test
- build
- deploy
- delivery
test_project:
tags:
- safepark
stage: test
image: mcr.microsoft.com/dotnet/core/sdk:2.1
script:
- dotnet test
build_image:
tags:
- safepark
only:
- master
stage: build
script:
- docker build -f WebApi/Dockerfile -t myuser/myimage
- docker tag -t myuser/myimage myuser/myimage:${VERSION_NAME}
push_image:
tags:
- safepark
only:
- master
stage: deploy
script:
- docker push myuser/myimage
- docker push myuser/myimage:${VERSION_NAME}
Run Code Online (Sandbox Code Playgroud)
但在“测试”阶段,图像永远不会被拉出,我得到“dotnet …
我正在尝试创建一个 https 地址的 proxy_pass (我的 nginx 使用纯 HTTP 协议在 80 下运行)。
这是我在conf文件中的声明:
location /viacep/ {
proxy_pass https://viacep.com.br/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)
好吧,这个想法是,当我输入时,localhost/viacep/ws/09340400/json我在引擎盖下得到了以下地址解析: https: //viacep.com.br/ws/09340400/json。但我在 error.log 文件中收到以下错误:
2021/12/28 09:32:59 [error] 34664#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: , request: "GET /viacep/ws/09540400/json HTTP/1.1", upstream: "https://165.227.126.241:443/ws/09540400/json", host: "localhost"
Run Code Online (Sandbox Code Playgroud)
我想这个错误是由于地址解析(https://165.227.126.241:443/ws/09540400/json)而发生的,使用IP而不是DNS查看它。
编辑1
我尝试添加proxy_ssl_server_name on;但同样的错误。
我正在尝试在 AzureDevops 中创建一个管道,所以我有以下Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build
WORKDIR /src
COPY ["WebApi/WebApi.csproj", "WebApi/"]
RUN dotnet restore "WebApi/WebApi.csproj"
COPY . .
WORKDIR "/src/WebApi"
RUN dotnet build "WebApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApi.dll"]
Run Code Online (Sandbox Code Playgroud)
当我尝试运行我的管道时,出现以下错误:
Step 7/17 : COPY ["WebApi/WebApi.csproj", "WebApi/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder651276881/WebApi/WebApi.csproj: no such file …Run Code Online (Sandbox Code Playgroud) jsf ×2
azure-devops ×1
docker ×1
facelets ×1
flyway ×1
gitlab ×1
gitlab-ci ×1
integration ×1
java ×1
java-11 ×1
javascript ×1
jquery ×1
jwt ×1
kubernetes ×1
managed-bean ×1
maven ×1
nginx ×1
oauth-2.0 ×1
postgresql ×1
python ×1
spring ×1
spring-cloud ×1