2016-09-16 2 views
0

Я создал очень простой комплект, используя Scala для использования в Camel и Karaf. Когда я устанавливаю свой пакет в Apache ServiceMix 7.0.0/Karaf, пакет будет разрешаться, но не запускаться. Когда я проверяю журналы, я получаю сообщение: Компонент не найден со схемой: jettyApache ServiceMix 7, ScalaDSL, Не найдено ни одного компонента со схемой: jetty

Тщательный поиск по этим проблемам дает ответы только на то, что верблюд-причал включен в pom.xml.

Я сделал это, но, к сожалению, до сих пор не работает ..

Мои зависимостей POM являются (среди прочих):

<dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jetty-common</artifactId> 
     <version>2.16.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jetty9</artifactId> 
     <version>2.16.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jetty</artifactId> 
     <version>2.16.3</version> 
    </dependency> 

код в Scala очень проста:

val netStart = "jetty:http://localhost:8882/userdata" 
    val netEnd = "file:scala/netoutput" 

    netStart ==> { 
    as (classOf[Person]) 
    to (netEnd) 
    } 

и, наконец, список указанных компонентов, как показано на веб-консоли Karaf является

Imported Packages com.fasterxml.jackson.databind,version=2.8.2 from com.fasterxml.jackson.core.jackson-databind (268) 
com.fasterxml.jackson.module.scala,version=2.8.2 from com.fasterxml.jackson.module.jackson.module.scala (246) 
org.apache.camel,version=2.16.3 from org.apache.camel.camel-core (43) 
org.apache.camel.builder,version=2.16.3 from org.apache.camel.camel-core (43) 
org.apache.camel.component.jetty,version=2.16.3 from org.apache.camel.camel-jetty-common (270) 
org.apache.camel.component.jetty9,version=2.16.3 from org.apache.camel.camel-jetty9 (271) 
org.apache.camel.main,version=2.16.3 from org.apache.camel.camel-core (43) 
org.apache.camel.scala.dsl,version=2.16.3 from org.apache.camel.camel-scala (220) 
org.apache.camel.scala.dsl.builder,version=2.16.3 from org.apache.camel.camel-scala (220) 
org.apache.camel.spi,version=2.16.3 from org.apache.camel.camel-core (43) 
org.apache.camel.support,version=2.16.3 from org.apache.camel.camel-core (43) 
org.osgi.framework,version=1.8.0 from org.apache.felix.framework (0) 
scala,version=2.11.7.v20150622-112736-1fbce4612c from org.scala-lang.scala-library (213) 
scala.collection,version=2.11.7.v20150622-112736-1fbce4612c from org.scala-lang.scala-library (213) 
scala.collection.mutable,version=2.11.7.v20150622-112736-1fbce4612c from org.scala-lang.scala-library (213) 
scala.reflect,version=2.11.7.v20150622-112736-1fbce4612c from org.scala-lang.scala-library (213) 
scala.runtime,version=2.11.7.v20150622-112736-1fbce4612c from org.scala-lang.scala-library (213) 
Manifest Headers Bnd-LastModified: 1474031034895 
Build-Jdk: 1.8.0_91 
Built-By: sander 
Bundle-Activator: com.focuscura.servicemix.spielerei.MyRouteMain 
Bundle-ManifestVersion: 2 
Bundle-Name: MyFirstDSL 
Bundle-SymbolicName: com.focuscura.servicemix.spielerei.my-first-dsl 
Bundle-Version: 1.0.0.SNAPSHOT 
Created-By: Apache Maven Bundle Plugin 
Export-Package: com.focuscura.servicemix.spielerei; uses:="com.fasterxml.jackson.databind, org.apache.camel, org.apache.camel.builder, org.apache.camel.component.jetty, org.apache.camel.component.jetty9, org.apache.camel.scala.dsl.builder, org.apache.camel.support, org.osgi.framework, scala, scala.collection, scala.reflect, scala.runtime"; version="1.0.0" 
Import-Package: com.fasterxml.jackson.databind; version="[2.8, 3)", com.fasterxml.jackson.module.scala; version="[2.8, 3)", org.apache.camel; version="[2.16, 3)", org.apache.camel.builder; version="[2.16, 3)", org.apache.camel.component.jetty; version="[2.16, 3)", org.apache.camel.component.jetty9; version="[2.16, 3)", org.apache.camel.main; version="[2.16, 3)", org.apache.camel.scala.dsl; version="[2.16, 3)", org.apache.camel.scala.dsl.builder; version="[2.16, 3)", org.apache.camel.spi; version="[2.16, 3)", org.apache.camel.support; version="[2.16, 3)", org.osgi.framework; version="[1.8, 2)", scala; version="[2.11, 3)", scala.collection; version="[2.11, 3)", scala.collection.mutable; version="[2.11, 3)", scala.reflect; version="[2.11, 3)", scala.runtime; version="[2.11, 3)" 
Manifest-Version: 1.0 
Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.6))" 
Tool: Bnd-3.0.0.201509101326 

Я установил функцию camel-jetty9, и в качестве теста я создал маршрут чертежа в xml, который также использует маршрут причала, и это отлично работает.

Любая помощь относительно того, почему ServiceMix/Karaf/Camel настаивает, что не может найти причал: html :?

Большое спасибо!

ответ

1

У нас была проблема, подобная этому, и это было вызвано проблемой с версией Camel и версией Jetty, которая не работает вместе. Camel еще не обновлен для работы с Jetty 9 и работает только с Jetty 8.

Если вы откатываетесь обратно в Service Mix 6.1.x, вы можете обнаружить, что проблема решена сама собой, как в нашем случае.

Для получения дополнительной информации о версионности см http://servicemix.apache.org/community/releases-schedule.html

EDIT: Camel 2,18 будут фиксировать эти вопросы, но служба Mix 7 использует только 2,16

Источник: https://issues.apache.org/jira/browse/CAMEL-9689

+0

В конце концов, я не был в состоянии чтобы исправить это. Также на ServiceMix 6.1 он не смог найти компонент Jetty. В конце концов я полностью бросил ScalaDSL и определил свой маршрут с помощью Blueprint. Это хорошо работает в ServiceMix 7.0 (необходимо было указать Jetty 9 как Jetty8 в результате исключения NullPointerException. –