小编Ani*_* B.的帖子

如何在Spring的WebClient上验证bean?

我猜答案是否定的,因为文档中所有对Bean验证的引用都与服务器端有关。

客户端是否支持Bean验证?这样我就可以在将实体发送到服务器之前对其进行验证。

java spring bean-validation spring-webclient

7
推荐指数
1
解决办法
156
查看次数

尚未找到 JAXB-API 的实现(运行 java jar 时)

我在行中收到错误 (JAXBContext.newInstance):

    @Override
    public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException {
    SoapHeader soapHeader = ((SoapMessage)message).getSoapHeader();

    try {
        JAXBContext context = JAXBContext.newInstance(AuthHeader.class);
        Marshaller marshaller = context.createMarshaller();
        marshaller.marshal(authentication, soapHeader.getResult());

    } catch (JAXBException e) {
        System.out.println(e.getMessage());
        throw new IOException("error while marshalling authentication.");
    }
}
Run Code Online (Sandbox Code Playgroud)

当它作为测试用例执行时它运行良好:

 mvn install
Run Code Online (Sandbox Code Playgroud)

或 mvn:spring:boot 运行

但是在使用 jar 运行时会导致问题:

java -jar target/fileName-0.0.1-SNAPSHOT.jar 
Run Code Online (Sandbox Code Playgroud)

运行 java -jar 并使用邮递员命中时出错。

Implementation of JAXB-API has not been found on module path or classpath.

java.io.IOException: error while marshalling authentication.
Run Code Online (Sandbox Code Playgroud)

版本信息

mvn -version
Apache Maven 3.6.0 …
Run Code Online (Sandbox Code Playgroud)

java spring jax-ws jaxb spring-boot

7
推荐指数
2
解决办法
4998
查看次数

Spring Cloud Gateway:与 HTTP(S) 位于同一 URL 上的 Websockets

我使用 Spring Cloud Gateway 进行如下路由配置:

spring:
  cloud:
    gateway:
      routes:
      - id: http
        uri: http://kubernetes-ingres-controller
Run Code Online (Sandbox Code Playgroud)

换句话说,我将所有路径发送到其他地方,而该地方恰好是 K8s 入口控制器。Spring 添加了一些标头并处理会话 cookie 到承载令牌的转换。

我开始添加一些处理 websocket 的端点。但是,由于我们使用 websockets 进行 GraphQL 订阅,因此我们倾向于使用单个 /graphql 路径来处理普通 GraphQL 查询和用于订阅的 websocket。

有没有办法将 Spring Cloud Gateway 配置为在单个路径上支持 http 和 ws(或 https 和 wss)?

我可以做这个:

spring:
  cloud:
    gateway:
      routes:
      - id: http
        uri: http://kubernetes-ingres-controller
      - id: ws
        uri: ws://kubernetes-ingres-controller
        predicates:
          - Path=/graphql
Run Code Online (Sandbox Code Playgroud)

然而,我不清楚普通的 HTTP 是否可以在 graphql 路径上工作——实际上有很多这样的路径;我不想一一列举。

某种允许 http 在单个路由上可选升级到 wss 的设置将是理想的。

java spring spring-boot spring-cloud spring-cloud-gateway

7
推荐指数
1
解决办法
314
查看次数

我们有专门针对 Spring 5.x 的 XSD 吗?

谁能告诉我 Spring 5 版本的 XSD 是否可用?

有什么样spring-beans-5.1.xsdspring-context-5.1.xsdspring-mvc-5.1.xsdspring-beans-5.0.xsdspring-context-5.0.xsdspring-mvc-5.0.xsd可在春季?

如果可用,请提供这些 XSD 的链接。

另外,谁能告诉我spring-securityfor的兼容版本是Spring 5.x什么?

java spring

6
推荐指数
1
解决办法
1万
查看次数

如何在 web.xml 中创建多个通配符 url 模式?

如何在 Jetty 中路由以下路径?

/users/user_id/transactions/transaction_id
Run Code Online (Sandbox Code Playgroud)

我这样尝试过:

/users/*/transactions/*
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误,如下所示:

java.lang.IllegalArgumentException:Servlet Spec 12.2 违规:glob '*' 只能存在于基于前缀的匹配的末尾:错误的规范"/users/*/transactions"

解决这个问题的办法是什么?

java web.xml servlets jetty

6
推荐指数
1
解决办法
1958
查看次数

Spring中的“上下文”是什么意思?

我正在研究 Spring 上下文,但后来我想知道“上下文”的含义是什么以及它来自哪里。

我查了字典,但没有任何含义匹配。

我不是母语人士,所以这对我来说听起来很模糊,或者如果这是 Spring 团队编造的词,那么我想知道它是从哪里驱动的。

spring

6
推荐指数
1
解决办法
5330
查看次数

三元运算符中的“+=”运算符是什么意思?

我在 androidx.lifecycle 包中发现了一个代码片段,我想知道这是什么意思。

LiveData.this.mActiveCount += mActive ? 1 : -1;
Run Code Online (Sandbox Code Playgroud)

其中 mActiveCount 是一个整数,而 mActive 是一个布尔值。

但是,当我在写这个问题时,我想我是带着答案而来的,所以如果我没有弄错的话,“+=”运算符的使用就像我们通常使用的“=”运算符一样。

这意味着代码执行的顺序如下:

mActive ? 1 : -1;部分首先执行。

一旦解决了这个问题,就LiveData.this.mActiveCount += mActive执行。所以我真正的问题是:

这是此代码的正确等效项吗?:

    int intToAdd = mActive ? 1 : -1;
    activeCount += intToAdd;
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
1
解决办法
157
查看次数

Eclipse 显示“Tomcat 端口无效”。为什么?

我正在使用 Eclipse 2019-03 和 Apache Tomcat 版本 8.5.45。

我已经在eclipse中添加了服务器。

运行服务器后,它给了我如下错误:

在此处输入图片说明

我检查了server.xml

在此处输入图片说明

发现server.xml的端口号被设置为8089,所以,当我单独运行tomcat时,连接到localhost:8089. 问题仍然存在。为此,我还检查了端口8089是否正在使用中,但事实并非如此。

那么,有什么问题呢?

java tomcat

5
推荐指数
1
解决办法
2839
查看次数

多租户 Spring JPA:动态数据源的动态方言解析

我有一个具有基础数据库 (Oracle) 的应用程序。它从基本数据库中的表中获取另一个租户数据库连接字符串。这些租户可以是 Oracle、Postgres 或 MSSQL。

当应用程序启动时,方言被设置为org.hibernate.dialect.SQLServerDialect基本数据库的休眠状态。但是当我尝试在 MSSQL 数据库的租户中插入数据时,它在插入数据时抛出错误。com.microsoft.sqlserver.jdbc.SQLServerException: DEFAULT 或 NULL 不允许作为显式标识值

这是因为它正在为 Oracle 数据库设置 MSSQL 方言。

[WARN ] 2020-01-21 09:16:22.504 [https-jsse-nio-22500-exec-5] [o.h.e.j.s.SqlExceptionHelper] -- SQL Error: 339, SQLState: S0001
[ERROR] 2020-01-21 09:16:22.504 [https-jsse-nio-22500-exec-5] [o.h.e.j.s.SqlExceptionHelper] -- DEFAULT or NULL are not allowed as explicit identity values.
[ERROR] 2020-01-21 09:16:22.535 [https-jsse-nio-22500-exec-5] [o.a.c.c.C.[.[.[.[dispatcherServlet]] -- Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate multi-tenant

5
推荐指数
1
解决办法
522
查看次数

Springfox 上的 Spring Boot 应用程序用于 swagger-ui PUT 始终“无效的 CORS 请求”

我有一个基于 1.5.3.RELEASE 的 Spring Boot 应用程序,它在 2.6.1 中利用 springfox-swagger2 ,在 2.6.1 中利用 springfox-swagger-ui 。

对于大多数 API 来说,一切都很好。GET 有效。帖子有效。PUT 总是在 swagger-ui.html 处出错,Invalid CORS request我可以使用如下请求重现问题 localhost:

$ curl -i -X PUT 'http://localhost.mycompany.com:8080/mom/749f4f1f-0769-488d-9776-17fc3927cfc6/description?description=WangoTango' \
> -H 'Origin: http://example.com' \
> -H 'Cookie: a.token_key=redacted' \
> -H 'accept: application/json'
HTTP/1.1 403
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 20
Date: Sat, 11 Nov 2023 01:42:01 GMT

Invalid CORS request
Run Code Online (Sandbox Code Playgroud)

我的应用程序是根据https://docs.spring.io/spring-security/reference/reactive/integrations/cors.html使用 …

java spring cors swagger-ui spring-boot

5
推荐指数
1
解决办法
311
查看次数