【问题标题】:Spring Camel: Process finished with exit code 0Spring Camel:进程以退出代码 0 结束
【发布时间】:2018-05-29 04:38:45
【问题描述】:

我正在尝试将 Camel 集成到使用嵌入式 tomcat 实例在本地运行的现有 spring 项目中。 spring 项目在我添加任何骆驼依赖项之前工作,但是,在添加 4 个骆驼依赖项之后,我收到消息“进程完成,退出代码 0”。我正在使用 maven 构建应用程序并在嵌入式 tomcat 实例中运行它(mvn clean install -Pembedded(参见下面的配置文件))。

我不是 Camel 新手,但我仍然无法弄清楚下面的依赖项是如何导致我的 spring 进程完成运行的(在添加了 camel 依赖项后,spring 似乎什么都没有执行)。我怎样才能让现有的 spring 应用程序正常工作并且仍然拥有新的骆驼依赖项?

以下是新的依赖项:

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-aws</artifactId>
        <version>2.19.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-test</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http4</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>

这是完整的文件(已删除私人信息):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>com.----.----</groupId>
    <artifactId>webs-parent</artifactId>
    <version>1.0.6-SNAPSHOT</version>
</parent>

<artifactId>webs-catalog</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>${packaging.type}</packaging>

<name>catalog-service</name>
<description>Commerce Catalog Service</description>
<url>----</url>

<properties>
    <jacoco.minimum.code.coverage>0.8</jacoco.minimum.code.coverage>
    <packaging.type>war</packaging.type>
    <failOnMissingWebXml>false</failOnMissingWebXml>
    <central.repo>----</central.repo> <!-- "nexus-proxy" is a cache -->
    <org.apache.camel.version>2.16.0</org.apache.camel.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-csv</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-aws</artifactId>
        <version>2.19.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-test</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http4</artifactId>
        <version>${org.apache.camel.version}</version>
    </dependency>
</dependencies>



<profiles>
    <!-- Default build profile for generating war -->
    <profile>
        <id>war</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <packaging.type>war</packaging.type>
            <log.dir>${catalina.base}/logs</log.dir>
            <!-- updates bootstrap.properties -->
            <config.override.path>file:${catalina.base}/conf</config.override.path>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <descriptor>/src/main/resources/deployablecontent.xml</descriptor>
                        <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

            </plugins>
        </build>
    </profile>

    <!-- Build profile for stand-alone java application with embedded Tomcat 
        Container -->
    <profile>
        <id>embedded</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <packaging.type>jar</packaging.type>
            <log.dir>logs</log.dir>
            <!-- updates bootstrap.properties -->
            <config.override.path>./conf</config.override.path> 
        </properties>
    </profile>
</profiles>

<repositories>
    <repository>
        <id>central-mirror</id>
        <url>${central.repo}</url>
    </repository>
</repositories>

【问题讨论】:

  • 日志文件中是否有错误信息?尝试删除 spring-boot-starter-tomcat 的范围
  • 请出示您的路线和完整的日志...

标签: spring maven tomcat apache-camel


【解决方案1】:

删除 spring-boot-starter-tomcatprovided 范围,然后它成为默认范围 compile。在嵌入式 tomcat 环境中,您应该设置默认范围编译,如果您希望将战争部署到任何其他独立 tomcat。可以将此依赖项标记为已提供。

【讨论】:

  • 包类型也应该是jar而不是war。这样,他将拥有一个嵌入 tomcat 的 uber jar,而不是战争。提供的 scope 和 war 包适用于将要部署在容器中的 Spring Boot 应用程序。
猜你喜欢
  • 2017-01-19
  • 2015-05-23
  • 2018-03-07
  • 2013-04-19
  • 1970-01-01
  • 2021-02-20
  • 2014-01-04
  • 2017-11-03
  • 2020-01-04
相关资源
最近更新 更多