我遵循杰夫建议的方法 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");
}
}
感谢任何提示或指示。
答案 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,需要找到一种方法)。