0

我在加载 Camel-CDI 项目时遇到问题。我在使用骆驼 3 时遇到问题。骆驼 2.18.1 工作正常。它可能是 POM 依赖错误。但我不知道是什么原因造成的。我正在附加我的 POM 文件。

[INFO] Starting Camel ...
[ERROR] *************************************
[ERROR] **Error occurred while running main from: org.apache.camel.cdi.Main**
[ERROR] 
java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.apache.camel.maven.RunMojo$1.run (RunMojo.java:460)
    at java.lang.Thread.run (Thread.java:830)
Caused by: org.jboss.weld.exceptions.WeldException: **WELD-001524: Unable to load proxy class for bean Implicit Bean [javax.enterprise.event.Event] with qualifiers [@Default] with class interface javax.enterprise.event.Event using classloader java.net.URLClassLoader@6870c3c2**
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstanceWithCaller (Constructor.java:500)
    at java.lang.reflect.Constructor.newInstance (Constructor.java:481)
    at java.util.concurrent.ForkJoinTask.getThrowableException (ForkJoinTask.java:600)
    at java.util.concurrent.ForkJoinTask.get (ForkJoinTask.java:1006)

下面是 pom 文件,用于项目。它不适用于骆驼 3 版本。我有类似的项目 Camel 2.18.1,它正在运行。我不确定,这些依赖项有什么问题。请帮助审查相同的内容并反馈给我。

 roperties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <weld.version>3.0.5.Final</weld.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Camel BOM -->
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-parent</artifactId>
        <version>3.1.0</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>




    </dependencies>
  </dependencyManagement>




  <dependencies>

    <!-- ************************* BLOCK START ************************* -->
    <!-- Enabling org.apache.camel.cdi.Main -->
    <dependency>
      <groupId>org.apache.deltaspike.cdictrl</groupId>
      <artifactId>deltaspike-cdictrl-weld</artifactId>
      <version>1.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.weld.se</groupId>
      <artifactId>weld-se-shaded</artifactId>
      <version>3.0.5.Final</version>
    </dependency>

    <!-- ************************* BLOCK END ************************* -->

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- CDI API -->
    <dependency>
      <groupId>javax.enterprise</groupId>
      <artifactId>cdi-api</artifactId>
      <version>2.0.SP1</version>
      <scope>provided</scope>
    </dependency>

    <!-- Camel CDI -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-cdi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
    </dependency>


    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-aws-s3</artifactId>
      <version>3.2.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-bean -->

    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-http</artifactId>
      <version>3.1.0</version>
      <!-- use the same version as your Camel core version -->
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <version>4.5.1</version>
    </dependency>

    <dependency>
      <groupId>javax.xml</groupId>
      <artifactId>jaxrpc-api</artifactId>
      <version>1.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl -->

    <dependency>
      <groupId>org.graalvm.nativeimage</groupId>
      <artifactId>svm</artifactId>
      <version>19.3.1</version>
    </dependency>







    <!-- logging -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>runtime</scope>
    </dependency>


    <!-- testing -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <defaultGoal>install</defaultGoal>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>



      <!-- ************************* BLOCK START ************************* -->

      <!-- Build an executable JAR with full list of dependencies-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>edu.emmerson.camel3.cdi.user.UserMainApp</mainClass>
              <classpathPrefix>dependency-jars/</classpathPrefix>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <!-- Copying all dependencies into a folder in the classpath -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>



      <!-- https://github.com/spotify/docker-maven-plugin -->
      <!-- Build the container: mvn clean package docker:build -->
      <!-- Start the container: $ docker run -d -p 8080:8080 cdi-user:1.0-SNAPSHOT -->
      <!-- Access to container: $ docker run -it cdi-user:1.0-SNAPSHOT /bin/bash  (when you comment the entrypoint)-->




      <!-- ************************* BLOCK END ************************* -->



      <!-- allows the routes to be run via 'mvn camel:run' -->
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-maven-plugin</artifactId>
        <version>3.4.2</version>
        <dependencies>
          <!-- https://mvnrepository.com/artifact/org.apache.deltaspike.core/deltaspike-core-api -->
          <dependency>
            <groupId>org.apache.deltaspike.core</groupId>
            <artifactId>deltaspike-core-api</artifactId>
            <version>1.9.4</version>
          </dependency>
          <!-- https://mvnrepository.com/artifact/org.apache.deltaspike.core/deltaspike-core-impl -->
          <dependency>
            <groupId>org.apache.deltaspike.core</groupId>
            <artifactId>deltaspike-core-impl</artifactId>
            <version>1.9.4</version>
          </dependency>


          <!-- https://mvnrepository.com/artifact/org.jboss.weld.se/weld-se-shaded -->
          <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se-shaded</artifactId>
            <version>${weld.version}</version>
          </dependency>

        </dependencies>
      </plugin>

    </plugins>
  </build>
'''

This is very minimal example. I started with below  project bootstrap. 
Reprodceble method: 

mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-cdi

Above command will genrerate basic route.  And updated my pom.xml as per requirement. 
4

0 回答 0