Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: No classes have been predefined during the image build to load from bytecodes at runtime.

spirngboot项目,graalvm native 编译完成后运行服务运行报错,

Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: No classes have been predefined during the image build to load from bytecodes at runtime.

看帖子说是jdk版本问题,可我是用的graalvm编译的没错呀。后测试发现跟springboot版本有关,springboot3.1.0会报这个错,3.0.4和3.0.7测试过没问题

spring mvc cannot reliably process ‘persist’ call

spring mvc cannot reliably process ‘persist’ call
spring mvc +jpa 出现了这个问题, 也根据网上加过 @PersistenceContext @Transactional 这些注解,都没啥效果.

我的解决方式, 根据配置文件
原来的
@Autowired
EntityManager entityManager;

改成了
@Autowired
private EntityManagerFactory entityManagerFactory;

之后使用的时候
entityManagerFactory.createEntityManager()
就成功了,但这种方法需要自己关闭下EntityManager

swagger+spring+junit冲突

swagger +spring+junit冲突
junit的测试跑不起来,主要原因是引用的注解造成的:

@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages ={"xx"})
public class SwaggerConfig {
...
}

我的解决办法是把swaper配置文件分离出来,junit不调用.
原先配置文件只有默认的两个:
/WEB-INF/spring-servlet.xml
/WEB-INF/applicationContext.xml
修改后增加一个
/WEB-INF/spring-swagger.xml

并改成在web.xml导入配置文件

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    /WEB-INF/spring-servlet.xml
    /WEB-INF/applicationContext.xml
    /WEB-INF/spring-swagger.xml
  </param-value>
</context-param>

参考:http://stackoverflow.com/questions/7471544/unit-testing-spring-mvc-web-app-could-not-autowire-field-private-javax-servlet