jpa 2.1弹簧靴与web球体8.5.5.8(完整版)jdk 7

时间:2016-07-11 11:52:35

标签: spring-boot websphere-8 jpa-2.1

我遵循杰夫建议的方法 https://gist.github.com/jeffsheets/aec3e94870ef903ce7efe33e00563d3c

我能够克服jpa 2.1 java.lang.ClassCastException:com.ibm.websphere.persistence.PersistenceProviderImpl与javax.persistence.spi.PersistenceProvider不兼容。

但是我收到以下错误名为com.x的servlet ... JerseyConfig无法动态添加,因为已经存在具有相同名称的servlet配置。我正在使用WebSphere 8.5.5.8完整版和JDK 1.7 spring boot 1.4.0.M3。

在我的JerseyConfig.java

@Component
@PropertySources(value = {
    @PropertySource("classpath:application.properties"),
    @PropertySource("classpath:ValidationMessages.properties")})
@DependsOn("hibernatePersistenceProviderResolver")
public class JerseyConfig extends ResourceConfig {
    public JerseyConfig() {
        packages("com.x.package");
    }
}

感谢任何提示或指示。

1 个答案:

答案 0 :(得分:1)

我做了以下工作以使其工作(除了之前提到的@DependsOn)。

1)首先加载本地类加载器,最后加载父类。

2)将WebSphere Appserver com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine中的JVM属性添加为true,以便仅使用随应用程序一起提供的JAX RS。 (修复了servlet名称已经存在)。 3)在运行我的REST端点后成功部署后,我在运行时遇到以下错误。

UOWManager事务处理失败;嵌套异常是com.ibm.wsspi.uow.UOWException:java.lang.VerifyError:com / ibm / websphere / uow / UOWSynchronizationRegistry.registerInterposedSynch ronizat ion(Ljavax / transaction / Synchronization)V

要解决此问题,请添加spring.jta.enabled = false以使用WebShpere JTA。 (理想情况下,首选覆盖Web球体JTA并使用spring JTA,需要找到一种方法)。