当前位置: 首页 > 知识库问答 >
问题:

将spring boot部署到websphere 8.5.5.5

居焱
2023-03-14

我正在尝试使用jpa、hibernate、jersey为webphere构建一个Spring boot项目。

一旦我知道websphere只支持JPA 2.0,我就找到了这篇文章(Halo,I am article),并尝试遵循它。然而,这似乎对我不起作用。引发异常

原因:java。lang.ClassCastException:com。ibm。websphere。坚持不懈PersistenceProviderImpl与javax不兼容。坚持不懈spi。javax上的PersistenceProvider。坚持不懈持久性1美元。已在org上加载(Persistence.java:77)。冬眠验证器。内部的发动机分解器。JPA通用解析器。isReachable(jpatransablesolver.java:56)位于org。冬眠验证器。内部的发动机分解器。DefaultTraversableResolver。isReachable(DefaultTraversableResolver.java:137)位于org。冬眠验证器。内部的发动机分解器。cachingtraversableresolverforsinglavalidation。isReachable(CachingTraversableResolverForSingleValidation.java:46)位于org。冬眠验证器。内部的发动机ValidatorImpl。isReachable(ValidatorImpl.java:1396)。。。137个以上

我的pom。xml设置在“org”下面。springframework。boot spring boot starter父级1.2.7。释放

<properties>
    <start-class>com.jersey.Application</start-class>
    <jersey-version>2.7</jersey-version>
    <jackson-version>2.4.3</jackson-version>
    <java.version>1.7</java.version>
    <servlet-api.version>3.0.1</servlet-api.version>
</properties>

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.hibernate</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>

    <!-- End Spring -->

    <!-- Jackson -->
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>${jackson-version}</version>
    </dependency>
    <!-- End Jackson -->

    <!-- Guava -->
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version>
    </dependency>
    <!-- End Guava -->

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.2.15.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.2.15.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-releases</id>
        <url>http://repo.spring.io/libs-release</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-releases</id>
        <url>http://repo.spring.io/libs-release</url>
    </pluginRepository>
</pluginRepositories>`

我想知道将spring boot部署到websphere是否缺少任何功能?

使现代化

我所做的1)添加hibernate版本并将其降级到4.2.15:最终2)将parent last设置为类加载

我想知道有没有可以部署到websphere的完整示例

共有1个答案

施兴言
2023-03-14

没有缺失的依赖,有一个太多了。您不应该包括hibernate-jpa-2.0-api,因为WebSphere已经提供了jpa api类,所以如果您将范围设置为为该依赖项提供,它应该可以工作:

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
</dependency>

这适用于容器提供的所有JavaEE API。它们不应包含在您的部署中。

还有一点可以简化您的pom.xml:要更改Hibernate版本,Spring Boot提供了一个属性来显式管理版本。只需将以下内容添加到您的属性标签中:

<hibernate.version>4.2.15.Final</hibernate.version>

然后,您可以删除hibernate的排除标记以及hibernate core和hibernate entitymanager的两个依赖项。

 类似资料:
  • 我目前正在开发一个云备份解决方案,其中涉及到多达8个在spring-boot中开发的微服务,并使用mongo DB atlas作为持久层。 微服务包括Netflix ZUUL API网关和Netflix Eureka作为服务发现机制。微服务被要求彼此进行明显的对话。 对微服务进行了对接。到目前为止,我已经使用docker-compose文件将它们部署到EC2实例中,该文件列出了使用docker网络

  • 所以我对Spring很陌生--所以我想试试Spring Boot 我正在使用一个Maven来构建--我设置了一个视图请求,当我以“app”的形式运行它时,看起来就像它自己启动了tomcat,并且我有一个默认8080端口的服务,所以当我调用时,一切都很好。 然而,当我试图将其打包为WAR部署到服务器时,它不起作用 所以我想我应该回到基础,并将它部署到本地的tomcat服务器上,看看会发生什么 所以首

  • 在本教程中,我们将会使用 GitLab CI 将 Hexo 博客部署到 GitLab Pages 上。 新建一个 repository。如果你希望你的站点能通过 <你的 GitLab 用户名>.gitlab.io 域名访问,你的 repository 应该直接命名为 <你的 GitLab 用户名>.gitlab.io。 将你的 Hexo 站点文件夹推送到 repository 中。默认情况下 pu

  • 在本教程中,我们将会使用 Travis CI 将 Hexo 博客部署到 GitHub Pages 上。Travis CI 对于开源 repository 是免费的,但是这意味着你的站点文件将会是公开的。如果你希望你的站点文件不被公开,请直接前往本文 [私有 Repository](#私有 Repository) 部分。 新建一个 repository。如果你希望你的站点能通过域名 <你的 GitH

  • 问题内容: 在尝试将新的portlet安装到在Glassfish域上运行的Liferay时遇到了问题。我最近很清楚流程,也想与他人分享。所以,请阅读答案,希望这对某人有帮助:) (此问题的先决条件是,我知道添加在 Glassfish 上运行的项目是通过autodeploy文件夹完成的,但是使它们在 Liferay上 可见则是另一回事了。) 问题答案: 因此,您首先创建一个.war文件,让我们说一个