gpt4 book ai didi

带有 apache Axis 的 Spring 启动应用程序

转载 作者:行者123 更新时间:2023-12-04 10:17:39 27 4
gpt4 key购买 nike

我正在尝试运行一个 spring boot jar,其中包含axis2依赖项。我正在使用 spring boot maven 插件来构建 jar(带有依赖项)。当我尝试运行 jar 时,控制台中出现以下异常:

org.apache.axis2.AxisFault: The G:application\myapp\target\myapp.jar!\lib\axis2-1.6.1.jar file cannot be found.
at org.apache.axis2.deployment.repository.util.DeploymentFileData.setClassLoader(DeploymentFileData.java:111)
at org.apache.axis2.deployment.ModuleDeployer.deploy(ModuleDeployer.java:70)
at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:813)
at org.apache.axis2.deployment.RepositoryListener.loadClassPathModules(RepositoryListener.java:222)
at org.apache.axis2.deployment.RepositoryListener.init2(RepositoryListener.java:71)
at org.apache.axis2.deployment.RepositoryListener.<init>(RepositoryListener.java:64)
at org.apache.axis2.deployment.DeploymentEngine.loadFromClassPath(DeploymentEngine.java:175)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:135)
at ...

然后我检查了我的 jar 的结构。它内部有 lib 文件夹,其中包含所有 jar(包括上面提到的 Axis jar)。附上lib文件夹 enter image description here的截图.
以下是我尝试过的解决方案:
  • 将 Axis jar 放置在与应用程序 jar 相同的目录中。
  • 在与应用程序 jar 相同的目录中创建 lib 文件夹并将 Axis jar 放在其中。
  • 修改 list 文件以包含类路径:/lib/

  • 所有解决方案都没有奏效。但是,当我在 eclipse 中运行应用程序类时,应用程序启动并完美运行。但是,一旦我创建了 jar,似乎什么都没有运行。

    有人可以帮忙吗?提前致谢。

    最佳答案

    看起来 Axis 无法应对从嵌套在另一个 jar 中的 jar 运行的情况。它在 Eclipse 中运行良好,因为 Axis jar 可直接在文件系统上使用,而不是嵌套在 Spring Boot 应用程序的 jar 文件中。

    您可以配置应用程序的胖 jar 文件,以便 Spring Boot 在运行时知道将 Axis jar 解压到一个临时位置。如果您使用的是 Maven:

    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <requiresUnpack>
    <dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2</artifactId>
    </dependency>
    </requiresUnpack>
    </configuration>
    </plugin>
    </plugins>
    </build>

    如果您使用 Gradle:
    springBoot  {
    requiresUnpack = ['org.apache.axis2:axis2']
    }

    Spring Boot documentation了解更多详情。

    关于带有 apache Axis 的 Spring 启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213372/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com