我正在使用带有 Spring Data JPA 的 com.ibm.db2.jcc.DB2Driver 驱动程序连接到 AS400 数据库的 Spring 启动应用程序。我使用 org.hibernate.dialect.DB2Dialect 方言。当我启动应用程序时,出现错误
Could not fetch the SequenceInformation from the database
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=SYSCAT.SEQUENCES;TABLE, DRIVER=4.26.14
Run Code Online (Sandbox Code Playgroud)
这意味着表SYSCAT.SEQUENCES丢失了,它是,因为它不需要。应用程序工作正常,但错误困扰着我。据我所知,SequenceInformations 仅在我在某处生成 ID 时才重要,而我不这样做。此应用程序仅用于将数据从一个地方复制到另一个地方,因此我只使用 JPA@Id注释而不使用那个@GeneratedValue。我是否缺少 SequenceInformation 的一些用途?有没有办法关闭 SequenceInformation 的获取?
这些是我的应用程序属性:
spring:
datasource:
driver-class-name: com.ibm.db2.jcc.DB2Driver
hikari.connection-test-query: values 1
hikari.maximum-pool-size: 25
jpa:
database-platform: DB2Platform
hibernate.ddl-auto: none
open-in-view: false
properties:
hibernate:
dll-auto: none
dialect: org.hibernate.dialect.DB2Dialect
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
Run Code Online (Sandbox Code Playgroud) 我目前正在使用 Quarkus-smallrye-openapi 提供的 Quarkus 和 Swagger-UI。我们有来自 Azure AD 的 OIDC 作为安全性,目前 Swagger-UI 不支持它(请参阅Swagger-Docs),因此我无法为 swagger 添加“真实”授权。这意味着,我不能使用 Swagger,因为我的端点至少使用@RolesAllowed. 我们有一个端点来获取模拟安全令牌,但我不知道如何告诉 swagger 获取此令牌。基本上我想告诉 swagger-ui “这里,我有这个令牌,将它添加Authorization: Bearer XXX到所有请求中”,但我不知道如何在 Quarkus 中做到这一点。
我目前的问题一般是,我的机器上运行了两个Wildfly 8.2.0Final实例.我知道,有类似的问题,但它们都没有真正帮助解决我的问题.其中一个包含一个restful应用程序,SenderBean它在收到GET时触发无状态会话bean .之后,这个无状态会话bean应该从远程无状态会话bean调用一个方法,该bean PrintBean位于另一个wildfly实例上.
我将首先解释一下到目前为止我所做的事情(也许我错过了一些东西,我对Java EE和Wildfly来说很新).
我会打电话给Wildfly实例与SenderBean在Sender和一个用PrintBean了Receiver.
我创建了一个名为应用程序的用户Stefan使用密码stefan,属于组guest上Receiver.在Sender,在standalone-full.xml,我通过推出添加了一个安全领域
<security-realm name="ejb-security-realm">
<server-identities>
<secret value="c3R1ZmFu"/>
</server-identities>
</security-realm>
Run Code Online (Sandbox Code Playgroud)
进入该<security-realms>部分.我还通过put添加了一个outbound-socket-binding
<outbound-socket-binding name="remote-ejb">
<remote-destination host="localhost" port="8080"/>
</outbound-socket-binding>
Run Code Online (Sandbox Code Playgroud)
进入该<socket-binding-group ...>部分.最后,我通过put创建了一个出站连接
<outbound-connections>
<remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="Stefan" security-realm="ejb-security-realm">
<properties>
<property name="SASL_POLICY_NOANONYMOUS" value="false"/>
<property name="SSL_ENABLED" value="false"/>
</properties>
</remote-outbound-connection>
</outbound-connections>
Run Code Online (Sandbox Code Playgroud)
进入该<subsystem xmlns="urn:jboss:domain:remoting:2.0">部分.
我Sender使用CLI命令standalone.bat -c standalone-full.xml -Djboss.socket.binding.port-offset=100 -Djboss.node.name=Sender和 …
bearer-token ×1
db2 ×1
db2-400 ×1
ejb ×1
ibm-midrange ×1
java ×1
java-ee ×1
jboss ×1
jpa ×1
quarkus ×1
swagger-ui ×1
wildfly ×1