ESB Route issue while migrating to 7.1.1

Highlighted
Five Stars

ESB Route issue while migrating to 7.1.1

Hi, 

 

I'm trying to migrate a route from Talend 6.4.1 to 7.1.1. The route creates a REST service that is published to the Talend Runtime, but when I try to start the route Talend always ask me to install third party modules (javax.ws.rs-api-2.0.1.jar). The Download and install all modules button is greyed out so I downloaded the .jar file manually and added it. But after adding it Talend returns to compiling the route and shows a warning that the javax.ws.rs-api-2.0.1.jar is missing. It continues with compiling at ask for the .jar file again, only this time I can't add the file manually and when I hit cancel again it shows me the warning and continues with compiling. 

 

After the Studio finishes compiling the studio tries to deploy the artifact to the local runtime. Finally, in the execution window the startup message from the runtime is shown and it says that the endpoint was deployed and thats it. 

 

In the logs I found the following exception:

2019-07-01T15:33:30,512 | WARN | sshd-SshServer[3a4794f1]-nio2-thread-2 | org.jline.utils.Log 117 | 182 - org.jline - 3.6.2 | Unable to retrieve infocmp for type dummy
java.io.IOException: Cannot run program "infocmp": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[?:?]
at org.jline.utils.InfoCmp.getInfoCmp(InfoCmp.java:548) ~[?:?]
at org.jline.terminal.impl.AbstractTerminal.parseInfoCmp(AbstractTerminal.java:169) ~[?:?]
at org.jline.terminal.impl.LineDisciplineTerminal.<init>(LineDisciplineTerminal.java:112) ~[?:?]
at org.jline.terminal.impl.ExternalTerminal.<init>(ExternalTerminal.java:51) ~[?:?]
at org.jline.terminal.impl.ExternalTerminal.<init>(ExternalTerminal.java:43) ~[?:?]
at org.apache.karaf.shell.ssh.SshTerminal.<init>(SshTerminal.java:44) ~[?:?]
at org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl.start(ShellFactoryImpl.java:103) ~[?:?]
at org.apache.sshd.server.channel.ChannelSession.sendResponse(ChannelSession.java:363) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.channel.AbstractChannel.handleUnknownChannelRequest(AbstractChannel.java:300) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.channel.AbstractChannel.handleChannelRequest(AbstractChannel.java:282) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.channel.AbstractChannel.handleRequest(AbstractChannel.java:244) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractConnectionService.channelRequest(AbstractConnectionService.java:484) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:328) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:566) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:499) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1413) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:460) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:66) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:284) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:264) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:261) ~[145:org.apache.sshd.core:1.6.0]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[145:org.apache.sshd.core:1.6.0]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) [145:org.apache.sshd.core:1.6.0]
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) [?:?]
at sun.nio.ch.Invoker$2.run(Invoker.java:218) [?:?]
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessImpl.create(Native Method) ~[?:?]
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386) ~[?:?]
at java.lang.ProcessImpl.start(ProcessImpl.java:137) ~[?:?]
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[?:?]
... 30 more

Didn't someone encounter a similar problem while migrating to 7.1.1? 

 

Thanks in advance.

 

Kind regards,

Lucas

 

 


Accepted Solutions
Employee

Re: ESB Route issue while migrating to 7.1.1

Hi it could be your studio is not uploading the jars to Nexus repos talend-custom-libs-releases/snapshots.

Your studio should uploads the jars to the nexus repository’s talend-custom-libs-releases/snapshots based on the TAC nexus settings.

Also the jars which you manually upload with cConfig & tLibraryLoad are uploaded to Nexus.

Look into this article if it helps you.
https://community.talend.com/t5/Architecture-Best-Practices-and/Migrating-a-Talend-ESB-product-from-...


All Replies
Employee

Re: ESB Route issue while migrating to 7.1.1

Hi it could be your studio is not uploading the jars to Nexus repos talend-custom-libs-releases/snapshots.

Your studio should uploads the jars to the nexus repository’s talend-custom-libs-releases/snapshots based on the TAC nexus settings.

Also the jars which you manually upload with cConfig & tLibraryLoad are uploaded to Nexus.

Look into this article if it helps you.
https://community.talend.com/t5/Architecture-Best-Practices-and/Migrating-a-Talend-ESB-product-from-...

Five Stars

Re: ESB Route issue while migrating to 7.1.1

Hi, 

thanks for the answer, I added the jar via a cConfig component and it worked and the warning message is gone.  

Sadly the route still doesn't start. 

I tried to start the route in the studio runtime to get an error message, because when I compiled the route and exported it to the runtime I never got an error. 

I got the following error (7.1.1): 

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Talend/7.1.1/studio/configuration/.m2/repository/org/talend/libraries/activemq-all-5.15.5/6.0.0-SNAPSHOT/activemq-all-5.15.5-6.0.0-SNAPSHOT.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Talend/7.1.1/studio/configuration/.m2/repository/org/talend/libraries/slf4j-log4j12-1.7.10/6.0.0/slf4j-log4j12-1.7.10-6.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Talend/7.1.1/studio/configuration/.m2/repository/org/talend/libraries/slf4j-log4j12-1.7.2/6.0.0/slf4j-log4j12-1.7.2-6.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Talend/7.1.1/studio/configuration/.m2/repository/org/talend/libraries/slf4j-log4j12-1.7.5/6.0.0/slf4j-log4j12-1.7.5-6.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/osgi]
Offending resource: class path resource [META-INF/spring/noli.xml]

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/osgi]
Offending resource: class path resource [META-INF/spring/noli.xml]

	at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70)
	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:118)
	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:110)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:301)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1407)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1400)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:172)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:142)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:614)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:515)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at esb_all.noli_0_1.NOLi$8.createContext(NOLi.java:954)
	at org.apache.camel.main.Main.getCamelContextMap(Main.java:167)
	at org.apache.camel.main.MainSupport.postProcessContext(MainSupport.java:526)
	at org.apache.camel.main.Main.doStart(Main.java:136)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at org.apache.camel.main.MainSupport.run(MainSupport.java:168)
	at esb_all.noli_0_1.NOLi.run(NOLi.java:1134)
	at esb_all.noli_0_1.NOLi.runJobInTOS(NOLi.java:1505)
	at esb_all.noli_0_1.NOLi.main(NOLi.java:1475)

The binding errors result from using the studio runtime. But the other error shows that there is a problem with the spring configuration (http://www.springframework.org/schema/osgi). After a guick google search it seems like I had to add a dependecy to resolve this error so I tried to add the spring-osgi-core library to the project via the dependency editor but that didn't worked. 

 

Kind regards,

Lucas 

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Best Practices for Using Context Variables with Talend – Part 3

Read about some useful Context Variable ideas

Blog

Talend Studio Improvements for API Services

Take a look at the Talend Studio improvements for API Services

Watch Now

Talend API Designer – Technical Overview

Take a look at this technical overview video of Talend API Designer

Watch Now