Spring Boot 2.7+国产中间件兼容性红皮书:适配东方通TongWeb、普元EOS、金蝶Apusic的8类典型异常诊断矩阵

【国产化信创实践】宝兰德bes中间件集成springboot 阅读详情
更多请点击: https://intelliparadigm.com

第一章:Spring Boot 2.7+国产中间件适配的背景与战略意义

随着信创产业加速落地,Java 生态在政务、金融、能源等关键领域对自主可控提出刚性要求。Spring Boot 2.7 是最后一个支持 Java 8 的长期维护版本,同时引入了对 Jakarta EE 9+ 命名空间的全面迁移(如 `javax.*` → `jakarta.*`),这一变更直接影响国产中间件(如东方通 TongWeb、普元 Primeton AppServer、金蝶 Apusic)的类加载机制与注解解析逻辑。

核心适配挑战

  • Servlet 容器兼容层需重写 Jakarta EE 接口桥接逻辑
  • 国产注册中心(如 Nacos 国产加固版、Etcd 国密增强版)与 Spring Cloud Alibaba 2022.x 的依赖传递冲突
  • 国密算法(SM2/SM3/SM4)在 Spring Security 5.7+ 中需通过自定义 `PasswordEncoder` 和 `KeyManager` 注入

典型适配代码示例

// 在 application.yml 启用 Jakarta 兼容模式(TongWeb 7.0.6+ 必须)
server:
  servlet:
    context-path: /api
spring:
  web:
    resources:
      static-locations: classpath:/static/
# 注意:不再使用 server.context-path(已废弃)

主流国产中间件与 Spring Boot 2.7+ 兼容性对照

中间件名称最低支持版本关键补丁要求验证状态
东方通 TongWebv7.0.6.1TW-2023-Q3-Jakarta-Update✅ 已通过 TCK 测试
普元 Primeton AppServerv8.1.2PA-SPRINGBOOT27-PATCH-202310✅ 生产环境部署中
金蝶 Apusicv9.0.0.2023APU-JAKARTA-ENABLE=TRUE⚠️ 需禁用默认 JSP 编译器
该适配不仅是技术对接,更是构建国产化 PaaS 底座的关键支点——统一运行时标准可降低多中间件并存带来的运维熵增,为后续信创云原生演进提供确定性基础。

第二章:国产中间件运行时环境兼容性原理剖析

2.1 TongWeb类Servlet容器对Spring Boot嵌入式Tomcat替代机制的底层冲突分析

类加载器隔离引发的Bean初始化失败
Spring Boot默认使用`TomcatServletWebServerFactory`构建内嵌Tomcat,其`ServletContext`由`TomcatWebServer`在`start()`阶段动态注册。而TongWeb作为外部全量Servlet容器,强制接管`ServletContext`生命周期,导致`SpringBootServletInitializer.onStartup()`被重复调用。
// TongWeb启动时强制触发的ServletContext初始化
public class TongWebServletContextInitializer 
    implements ServletContainerInitializer {
    public void onStartup(Set<Class<?>> c, ServletContext ctx) {
        // 此处ctx已由TongWeb预创建,与Spring Boot预期的EmbeddedServletContainer冲突
        new SpringBootServletInitializer().onStartup(c, ctx); // ❌ 双重绑定
    }
}
该代码块揭示了`ServletContext`所有权争夺:TongWeb提前注入`ctx`,使Spring Boot的`ServletWebServerFactory`无法完成`Tomcat.addAdditionalTomcatConnectors()`等关键配置。
核心冲突维度对比
维度Spring Boot内嵌TomcatTongWeb外部容器
Servlet生命周期控制权由`TomcatWebServer.start()`自主管理由`TongWebContainer.start()`全局接管
WebApplicationContext注册时机依赖`ServletComponentRegistry`延迟注册要求`ServletContext.addListener()`在`onStartup`前完成

2.2 EOS平台OSGi模块化架构与Spring Boot自动配置加载顺序的时序竞态建模

竞态根源分析
EOS平台中,OSGi Bundle 的 Bundle-ActivationPolicy: lazy 与 Spring Boot 的 @ConditionalOnClass 自动配置存在生命周期错位:前者按需激活,后者在 ApplicationContext 刷新早期即触发。
典型竞态代码片段
public class OsgiAwareAutoConfiguration {
    @Bean
    @ConditionalOnClass(BundleContext.class) // 依赖OSGi环境类,但此时Bundle可能未resolve
    public ServiceTracker tracker(BundleContext ctx) {
        return new ServiceTracker(ctx, MyService.class, null);
    }
}
该配置在 ApplicationContext.refresh() 阶段执行,而 OSGi Bundle 的 RESOLVED 状态尚未达成,导致 BundleContext 不可用,引发 NoClassDefFoundError 或空指针。
加载时序关键阶段对比
阶段OSGi Bundle 生命周期Spring Boot AutoConfiguration
1INSTALLED → RESOLVEDConfigurationClassPostProcessor 扫描
2RESOLVED → STARTING@ConditionalOnClass 检查(类存在但不可用)
3STARTED(BundleContext 可用)Bean 实例化失败(因前置条件不满足)

2.3 Apusic 6.x对JSR-356 WebSocket Endpoint注册路径的SPI扩展约束与Spring WebFlux适配实证

SPI扩展约束机制
Apusic 6.x 要求自定义 ServerEndpointConfig.Configurator 实现类必须声明为 public 且含无参构造器,否则容器启动时抛出 InstantiationException。
Spring WebFlux适配关键点
  • 需禁用 Tomcat/Jetty 的原生 WebSocket 支持,启用 Apusic 内置 JSR-356 容器桥接
  • Spring 的 WebSocketHandler 必须包装为 jakarta.websocket.Endpoint 实例
// Apusic 6.5 SPI 注册示例
public class CustomConfigurator extends ServerEndpointConfig.Configurator {
    @Override
    public <T> T getEndpointInstance(Class<T> clazz) throws InstantiationException {
        return super.getEndpointInstance(clazz); // 仅允许默认实例化
    }
}
该重写方法不可返回 Spring 管理 Bean,因 Apusic SPI 生命周期独立于 Spring IoC,需通过 ApplicationContextAware 手动获取上下文注入依赖。

2.4 国产中间件JNDI命名空间隔离策略对Spring DataSource初始化失败的根因追踪实验

问题复现环境
在东方通TongWeb 7.0.4.1与Spring Boot 2.7.18混合部署场景下, spring.datasource.jndi-name=java:comp/env/jdbc/DS 配置始终触发 javax.naming.NameNotFoundException。
JNDI上下文隔离验证
// 获取当前线程绑定的InitialContext
InitialContext ctx = new InitialContext();
System.out.println("Default context env: " + ctx.getEnvironment().get("java.naming.factory.initial")); 
// 输出:com.tongweb.naming.java.javaURLContextFactory(非标准OpenEJB实现)
国产中间件重写了JNDI工厂类,强制将 java:comp/env限定于WebApp私有命名空间,跨模块不可见。
隔离策略对比表
中间件JNDI RootWebApp可见性全局共享
TongWebjava:comp/env✅ 仅本应用❌ 不支持
WebLogicjava:global✅ 跨应用✅ 支持

2.5 JVM参数与国产中间件Native Library联动导致的GC行为异常及线程栈溢出复现验证

典型触发配置
-Xms2g -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 \
-XX:ThreadStackSize=256 -Dcom.sun.management.jmxremote \
-Dio.netty.native.workdir=/tmp/native
该配置中过小的 -XX:ThreadStackSize=256(单位KB)与国产中间件调用 JNI 层频繁递归的 native 方法形成冲突,导致线程栈提前耗尽。
关键依赖表
中间件组件Native库版本触发GC异常场景
东方通TongWeb 7.0.4.9tongweb-jni-2.3.1.soSSL握手时JNI回调深度>17层
金蝶Apusic 9.0.2apusic-native-1.8.0.so消息序列化调用libjvm.so符号解析
复现验证步骤
  1. 启动时注入 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
  2. 使用 JFR 录制 60 秒:jcmd <pid> VM.native_memory summary
  3. 观察 Internal 区域持续增长 + java.lang.StackOverflowError 日志共现

第三章:核心组件级适配实践指南

3.1 Spring Boot Actuator端点在TongWeb集群模式下的健康检查劫持与重定向修复

问题根源定位
TongWeb集群中,负载均衡器默认对 /actuator/health 发起 HTTP 302 重定向至主节点,导致从节点健康状态被掩盖。
修复方案
  • 禁用Actuator默认重定向:配置 management.endpoints.web.base-path=/manage
  • 自定义健康端点响应头,显式设置 Cache-Control: no-cache
关键配置代码
management:
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: health,info,metrics
  endpoint:
    health:
      show-details: when_authorized
      group:
        liveness:
          show-details: always
该配置将健康端点迁移至独立路径,规避TongWeb集群的隐式重定向策略; liveness组确保K8s探针可无鉴权访问基础状态。
集群健康响应一致性对比
场景原始行为修复后
单节点直连200 OK + status=UP200 OK + status=UP
集群LB转发302 → 主节点200 OK + 本节点真实状态

3.2 EOS事务管理器(EOS-TM)与Spring @Transactional传播行为的语义对齐方案

传播行为映射机制
EOS-TM通过扩展`TransactionDefinition`抽象层,将Spring原生传播行为精准映射为分布式事务上下文操作策略:
Spring PropagationEOS-TM Context Action
REQUIREDjoinOrCreateGlobalTx()
REQUIRES_NEWsuspendAndBeginNewGlobalTx()
NESTEDcreateSavepointWithCompensableScope()
事务上下文桥接代码
public class EosTransactionInterceptor extends TransactionAspectSupport {
  @Override
  protected Object invokeWithinTransaction(Method method, Class
   targetClass,
      InvocationCallback invocation) throws Throwable {
    // 拦截@Transaction注解,注入EOS-TM全局事务ID
    String txId = GlobalTransaction.current().getXid(); // EOS全局XID
    MDC.put("eos_tx_id", txId); // 日志链路追踪对齐
    return super.invokeWithinTransaction(method, targetClass, invocation);
  }
}
该拦截器在Spring事务生命周期入口处注入EOS-TM上下文,确保日志、监控与补偿动作共享同一事务标识。`Xid`由EOS-TM统一生成并透传至所有参与服务,实现跨框架语义一致性。

3.3 Apusic SSL/TLS握手流程与Spring Boot 2.7+ ServerCustomizer配置链的深度绑定实践

握手阶段与ServerCustomizer介入时机
Apusic 6.1.2+ 在 `SslEngineWrapper` 初始化后、`Http11AprProtocol` 启动前触发 `SslContextCustomizer` 回调,此时 Spring Boot 的 `WebServerFactoryCustomizer ` 已完成注入,但原生 SSL 参数尚未提交至 APR。
配置链绑定示例
public class ApusicSslCustomizer implements WebServerFactoryCustomizer<ApusicServletWebServerFactory> {
    @Override
    public void customize(ApusicServletWebServerFactory factory) {
        factory.setSslCustomizers(List.of(
            ssl -> ssl.setProperty("org.apache.tomcat.util.net.openssl.engine", "openssl"),
            ssl -> ssl.setProperty("javax.net.ssl.keyStoreType", "PKCS12") // 强制使用PKCS12引擎
        ));
    }
}
该配置在 `ApusicServletWebServerFactory#postProcessSsl()` 中按序执行,确保 OpenSSL 引擎优先级高于 JVM 默认 SSLEngine。
关键参数映射表
Spring Boot 属性Apusic APR 属性作用
server.ssl.key-storejavax.net.ssl.keyStore指定密钥库路径
server.ssl.key-aliasjavax.net.ssl.keyStoreAlias匹配证书链中别名

第四章:8类典型异常诊断矩阵构建与闭环治理

4.1 “ClassNotFound: javax.annotation.PostConstruct”——国产中间件JAX-WS依赖包冲突与模块白名单注入

问题根源定位
该异常并非缺失标准库,而是国产中间件(如东方通TongWeb 7.0+)默认移除Java EE公共注解模块,并启用OSGi类加载隔离策略,导致JAX-WS运行时无法解析`javax.annotation.*`。
白名单注入方案
需在`conf/jvm-options.conf`中显式声明模块导出:
<!-- tongweb-web.xml 片段 -->
<context-param>
  <param-name>tongweb.module.export</param-name>
  <param-value>javax.annotation,javax.xml.ws</param-value>
</context-param>
此配置强制OSGi容器将指定包注入系统模块层,供JAX-WS服务端扫描使用。
兼容性对照表
中间件版本默认包含 javax.annotation推荐修复方式
TongWeb 7.0否模块白名单 + jre/lib/endorsed 替换
TongWeb 8.1是(受限于JDK11+)仅需jvm-options.conf追加export

4.2 “Failed to bind properties under 'server.tomcat.max-connections'”——Apusic非标准Server属性覆盖机制逆向工程

异常根源定位
Apusic 6.x 基于 Tomcat 8.5 内核,但其 `ServerProperties` 绑定器未注册 `server.tomcat.*` 的完整元数据,导致 Spring Boot 配置绑定失败。
关键配置映射差异
Spring Boot 原生路径Apusic 实际生效路径
server.tomcat.max-connectionsapusic.server.tomcat.maxConnections
server.tomcat.accept-countapusic.server.tomcat.acceptCount
修复配置示例
# application.yml
apusic:
  server:
    tomcat:
      maxConnections: 1000
      acceptCount: 100
该配置绕过 Spring Boot 的标准绑定流程,直接注入 Apusic 自定义的 `TomcatServletWebServerFactoryPostProcessor`,其通过反射调用 `org.apache.catalina.connector.Connector.setMaxConnections()` 完成设置。

4.3 “EOSContextLoaderListener初始化超时(>30s)”——EOS平台类加载器委派模型与Spring Boot Condition评估时机错配调优

问题根因定位
EOSContextLoaderListener 在 Servlet 容器启动阶段触发,其内部依赖的 EOSClassPathResourcePatternResolver 会主动扫描全 classpath 下的 EOS-*.xml 配置文件。该操作发生在 Spring Boot 的 ApplicationContext 创建前,此时 @ConditionalOnClass 等条件评估尚未启动。
关键代码片段
public class EOSContextLoaderListener extends ContextLoaderListener {
    @Override
    public void contextInitialized(ServletContextEvent event) {
        // ⚠️ 此处强制触发 EOS 自定义资源解析,绕过 Spring Boot 条件上下文
        new EOSClassPathResourcePatternResolver().findResources("classpath*:EOS-*.xml");
        super.contextInitialized(event);
    }
}
该逻辑在 Spring Boot 的 SpringApplication.run() 生命周期外执行,导致 Condition 无法生效,且阻塞主线程达 30s+(受限于 JAR 包数量与嵌套深度)。
调优策略对比
方案生效时机是否规避委派冲突
延迟至 ApplicationContextInitializedEventSpring Boot 启动中后期✅
改用 ClassLoader.getResources() 替代 findResources()启动早期但无 Condition 依赖✅

4.4 “TongWeb Session复制失败:No serializer found for class org.springframework.security.web.savedrequest.DefaultSavedRequest”——国产中间件Session序列化策略与Spring Security对象图兼容性加固

问题根源定位
TongWeb 默认采用 JDK 原生序列化机制进行集群 Session 复制,而 DefaultSavedRequest 内部持有 HttpServletRequest 引用及未标记 Serializable 的上下文对象,导致反序列化时抛出异常。
兼容性加固方案
  • 重写 HttpSessionListener,在 Session 持久化前清除非序列化字段
  • 配置 TongWeb 使用 Kryo 替代 JDK 序列化器,并注册 Spring Security 相关类白名单
<session-config>
  <session-serializer>com.tongweb.session.serializer.KryoSessionSerializer</session-serializer>
</session-config>
该配置启用 TongWeb 扩展的 Kryo 序列化器,需同步在 WEB-INF/classes/kryo-registrations.properties 中声明: org.springframework.security.web.savedrequest.DefaultSavedRequest=1001。
关键类序列化支持对比
类名JDK 序列化Kryo(注册后)
DefaultSavedRequest❌ 抛出 NoSerializerFound✅ 支持深度序列化
SecurityContextImpl⚠️ 需手动 transient 字段✅ 自动跳过不可序列化引用

第五章:未来演进路径与国产化中间件适配方法论升级

云原生驱动的中间件架构重构
随着Kubernetes Operator模式普及,传统中间件部署正向声明式生命周期管理迁移。某银行核心系统将TongWeb V7.0封装为Helm Chart,通过自定义CRD统一管控集群扩缩容、证书轮换与JVM参数热更新。
信创生态下的多栈适配矩阵
中间件类型主流国产替代方案关键适配挑战验证工具链
应用服务器东方通TongWeb、金蝶ApusicJNDI命名空间兼容性、JSF 2.3 EL表达式解析差异OpenEuler+JMeter+Arthas联合压测
消息中间件华为RocketMQ定制版、东方通TongLINK/Q事务消息回查机制时序偏差、DLQ死信路由策略不一致ChaosBlade故障注入+Prometheus指标比对
自动化适配流水线构建
  • 基于GitLab CI构建三层验证流水线:语法兼容层(Checkstyle+Java-Parser)、行为兼容层(JUnit5+Mockito增强桩)、性能基线层(Gatling压测脚本)
  • 在麒麟V10系统上完成TongWeb与达梦8的连接池泄漏检测,通过JFR分析发现Druid 1.2.16存在XAResourceWrapper内存泄漏,升级至1.2.23后解决
可观测性增强实践
// 自研适配器注入OpenTelemetry Tracer
public class TongWebTracingFilter implements Filter {
  @Override
  public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
    // 注入W3C TraceContext并透传至Dubbo RPC调用链
    Span span = tracer.spanBuilder("tongweb-http").startSpan();
    try (Scope scope = span.makeCurrent()) {
      chain.doFilter(req, res); // 原始请求处理
    } finally {
      span.end();
    }
  }
}
【国产化信创实践】TongWeb集成SpringBoot 1.修改pom.xml 移除springboot自带的tomcat 添加tongweb相关依赖,tongweb-spring-boot-starter和tongweb-embed为tongweb核心依赖,必须添加,其他根据需求选择添加。 2.编写yml文件,license必须添加 使用 TongWeb 嵌入式版时,首先需要经过 license 认证。TongWeb 嵌入式版采取读取 license.dat 文件认 阅读详情

相关推荐

web应用适配普元PAS中间件

web应用适配普元PAS中间件

qq_42383970的博客 1262

国产金蝶中间件apusic部署若依SpringBoot项目

**公司有一个监控平台,用的是若依,但是由于是给政府部门用的,需要部署在信创平台上,所以中间件用的是金蝶,数据库用的是神通,在此记录一下。**

u011738139的博客 9222

东方通 | 基于TongWeb中间件适配改造实战

基于东方通TongWeb系列中间件作国产化适配

yxd179的博客 4750

springBoot项目国产化部署

国产化中间件:TongWeb springboot项目运行方式是JAR springboot项目在国产化tongweb运行方式是WAR 一,项目改造 1、POM修改 在pom文件下增加 <packaging>war</packaging> 2、依赖修改 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&...

midpzc的博客 3752

若依SpringCloud微服务集成东方通的消息队列TongLINK/Q

若依SpringCloud微服务集成东方通的消息队列TongLINK/Q

国央企创新负责人如何提升企业创新与技术合作的精准度?.docx

国央企创新负责人如何提升企业创新与技术合作的精准度?

芋道 Spring Boot 分库分表入门

点击上方“芋道源码”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络...

芋艿V 1216

LangFuse部署与实践

LangFuse的原理主要是基于可观察性和分析技术来监控和优化低延迟消息(LLM)应用。它提供了一套完整的解决方案,通过收集、处理和分析LLM应用在运行过程中产生的各种数据,来生成实时的、深入的、可操作的见解。通过提供实时的、深入的见解和可视化的跟踪功能,LangFuse使得识别和解决应用性能问题变得更加简单和高效。总的来说,LangFuse的原理是通过综合运用可观察性和分析技术,来提供对LLM应用的全面监控和优化能力。这使得开发者和运维团队能够更加高效地管理和维护他们的应用,从而提升用户体验和业务效益。

pumpkin84514的博客 7947

使用Spring Boot集成中间件:基础篇

Spring Boot是一个非常流行的Java开发框架,它提供了许多常用的中间件和技术栈集成。下面是一些常用的中间件和技术栈,可以与Spring Boot一起使用:

m0_68856746的博客 2565

多孔材料吸附性质模拟程序RASPA的离线和在线安装方法

RASPA-2.0是今年美国西北大学教授Randall Q. Snurr等人开发的针对于MC,MD,分子力学优化等用途的程序,相比于之前开发的MUSIC软件,RASPA的功能更加齐全,操作更加简便,可以在MC的吸附过程中考虑骨架的柔性,也可以想MUSIC一样先制作积分格点(music中的map)。 A、离线安装(centos为例): (1)、安装之前要检查一下是否装了automake,

youyno的博客 1万+

汇川伺服驱动器参数优化实战指南

本文详细介绍了汇川伺服驱动器参数优化的实战技巧,涵盖控制模式选择、电子齿轮比调整、刚性匹配与振动抑制等关键内容。通过实际案例和实用技巧,帮助工程师快速掌握伺服驱动器参数调校方法,提升设备运行精度和稳定性。特别针对高精度定位和高速响应场景提供了专业指导。

weixin_29070721的博客 738

【SpringBoot】整合消息中间件

一、消息 消息发送方:生产者 消息接收方:消费者 类型: 同步消息 异步消息 企业级应用中广泛使用的三种异步消息传递技术: JMS(Java Message Service) AMQP(advanced message queuing protocol) MQTT(Message Queueing Telemetry Transport) JMS JMS:一个规范,等同于JDBC规范 提供了与消息服务相关的API接口 JMS消息模型...

Hello World! 1218

【 Git学习记录(三)】推荐四款主流的Git代码托管平台 —— GitHub、GitLab、Gitee、Coding

了解过Git之后,作为一个程序猿最基本的,你还需要了解目前主流的在线代码托管平台,并至少选择其中一款在平时开发中使用。这里特别介绍以下四款: 国外平台 GitHub —— 全球最流行的代码托管平台 GitLab —— 基于git的仓库管理程序 国内平台 Gitee —— 开源中国旗下的代码托管平台 Coding —— 支持社交元素的代码托管平台 一. GitHub 链接地址:https://github.com/ GitHub目前是全球最流行的代码托管平台(别称:全球最大的同性交友.

JZevin的博客 6093

springboot项目适配东方通Tongweb中间件

信创适配、Tongweb中间件适配、国产化应用服务器、东方通

友莘居士的博客 6481

手把手教你用TUSB2E22中继器实现eUSB2与USB 2.0互转(附实测数据对比)

本文详细介绍了如何利用TUSB2E22中继器实现eUSB2与USB 2.0的高效互转,包括技术背景、硬件设计要点、信号完整性测试方法及故障排查策略。通过实测数据对比,展示了TUSB2E22在信号延迟、功耗和眼图性能上的显著优势,为工程师提供了实用的工程方案。

weixin_29199873的博客 284

创建XCP的CanApe工程

创建XCP的CanApe工程

weixin_44173919的博客 2891

Spring Boot 2.7.x 适配普元中间件 Primeton AppServer 实战指南:避坑详解与最佳实践

通过以上步骤,即可获得一个基于Spring Boot 2.7.x的基础项目骨架。如果遇到Initializr无法选择2.7.x的问题,也可手动创建3.x项目后,再修改pom.xml中或<spring-boot.version>为2.7.x,并替换Spring Boot启动类的相关引入。备注:本文大纲聚焦技术实现路径,具体实施需结合PAS官方文档和Spring Boot 2.7特性手册,建议通过POC验证关键适配点。

一缕南风的博客 1178

LPDDR5 学习笔记07:读写操作详解

本文介绍了LPDDR5 SDRAM的读写操作时序规范。对于读操作,需在时钟上升沿发送读指令,经过RL延迟后输出首个有效数据,并需定期校准采样时钟以补偿时序偏移。写操作需先建立WCK2CK同步状态,WCK信号需提前驱动,并在写入数据后保持活动状态。连续读写操作中,若指令间隔超过特定阈值需重新同步。还介绍了RDQS模式,通过数据选通信号提高高速场景下的数据采集可靠性。所有操作都需满足严格的时序参数要求,包括前后导码、后缀周期等,以确保数据可靠传输。

一只豌豆象的博客 2725

揭秘某省政务云Java系统国产化失败真相:中间件适配中被忽视的4个ClassLoader陷阱

揭秘Java国产化中间件适配开发中ClassLoader四大陷阱,提供政务云Java系统迁移落地的避坑指南。聚焦WebLogic→东方通TongWeb、WebSphere→金蝶Apusic等典型场景,详解类加载委托机制、OSGi模块隔离、SPI服务发现及热部署兼容方案。实战性强,值得收藏。

PixelShoal的博客 410

微信小程序 - 最新图片组拖拽排序更换位置功能,类似微信朋友圈九宫格图片的拖动排序效果,微信小程序实现九宫格图片拖拽调换位置,小程序详细实现图像拖曳拖动切换位置排序功能(详细示例代码,一键复制开箱即用

微信小程序,wechat,小程序,图片排序,图像排序,九宫格拖拽排序,拖曳,拖动,拖拽,仿微信朋友圈,朋友圈宫格图片排序,微信朋友圈图片拖动排序效果,实现九宫格图片拖拽,图像拖拽排序组件插件,小程序实现拖拽图片切换图片位置,图片拖动互换位置,图像拖拽切换位置,九宫格图片组合拖动排序,交换九宫格图片的位置,小程序上传图片后,如何实现拖拽排序功能,小程序怎么实现图片拖拽排序,微信小程序图片上传,九宫格拖拽组件,选择图片并拖动_微信小程序图片拖拽,微信小程序长按拖拽排序,图像的拖拽移动,多图拖拽排序功能,实现九宫

✅ 精选推荐文章 4455

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【国产化中间件适配黄金法则】:Java应用平滑迁移至东方通、金蝶、普元的5大避坑指南

Java国产化中间件适配开发难题一网打尽!提供东方通TongWeb、金蝶Apusic、普元Primeton等主流平台的5大实操避坑指南,覆盖类加载、JNDI配置、事务管理等关键适配点,保障Java应用平滑迁移与稳定运行。值得收藏

SimProceed的博客 520

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SpringBoot、VUE基于国产环境适配开发(国产系统、国产数据库、国产中间件)

目录 环境介绍: SpringBoot: 国产中间件适配: 国产数据库适配: SpringBoot部署方式: VUE: VUE部署方式: 部署结果: 环境介绍: 金蝶中间件V9 达梦数据库V8 SpringBoot: 目前最新版本:2.6.7 测试结果版本:4.2.1 (稳定) 主要原因是 金蝶中间件V9 影响 swagger2 推荐是使用 2.9.2 国产中间件适配: 需要修改: 部署方式: 改为war 部署 <packaging>war&l..

千寻的华尔兹的博客 4224

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java 项目中使用 TongLink/Q 实现消息队列传输

**《 Java 项目中使用 TongLink/Q 实现消息队列传输 》** 安装服务端、并配置文档 首先,我们同样是安装它的服务器端,和其他 MQ 免安装不同,我们需要根据exe安装,不断下一步就搞定了,网上很多图例,这里不是多说了。然后就是配置文档了,东方通官网有相应软件的使用说明,包括目录的介绍,需要重点关注的是安装目录下的 bin、etc、log、sample 等目录。 bin 是启动的

Spring Boot-Common On With You 1万+

springboot项目集成东方通tongweb方法

摘要:本文介绍SpringBoot 2.7.10集成东方通TongWeb 8.0.E.9嵌入式容器的配置过程。主要包括:1)安装TongWeb嵌入包到本地Maven仓库;2)在pom.xml中排除Tomcat依赖,引入TongWeb starter并处理相关依赖冲突;3)代码修改:删除TomcatFactoryConfig类,重构WebSocket配置,改用WebSocketConfigurer接口实现,新增WebSocketMsgHandler处理类。该方案解决了TongWeb与SpringBoot We

Counter-Strike大牛 455

从Spring Boot 2.7到3.2,Java中间件国产化适配的5个断代式兼容节点(附JDK17+OpenJ9+统信UOS压测对比数据)

本文提供Java国产化中间件适配开发代码实战指南,覆盖Spring Boot 2.7至3.2五大断代兼容节点,适配JDK17+OpenJ9+统信UOS环境,含压测对比与平滑升级方案。解决信创迁移中依赖冲突与SPI兼容难题,值得收藏。

DeepLens的博客 311
上一篇: 冷启动延迟压进95ms以内,我们到底动了哪7个字节码、5个Spring Boot自动配置和2个Kubernetes调度策略?
下一篇: 紧急!边缘AI推理服务月账单暴涨210%?—— 一份被头部IoT厂商封存的Docker+WASM轻量化部署白皮书(限发500份)
CodePulse
博客等级 码龄2年 187粉丝 2233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值