Alessandro
Alessandro

Reputation: 4472

How to set classpath on Talend Open Studio

I've created a routine that depends on Apache HTTP Components, so I've downloaded the jar files and added those files to the Build Path.

I've set up both Classpath Variables and User Libraries under Java\Build Path, but it still doesn't work.

My code compile without any errors, but it fails to run with the following exception:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/RedirectStrategy
    at routines.downloadXls.start(downloadXls.java:10)
[...]

The piece of Java code is the following, it runs with Eclipse:

private CloseableHttpClient createHttpClient() {
        HttpClientBuilder builder = HttpClientBuilder.create();
        httpCtx.setAttribute(HttpClientContext.COOKIE_STORE, store);
        return builder.setRedirectStrategy(LaxRedirectStrategy.INSTANCE).build();
    }

I've already seen a similar question on talend community, but it didn't help me.

Any suggestion, please?

Thanks

Upvotes: 1

Views: 2260

Answers (1)

Ibrahim Mezouar
Ibrahim Mezouar

Reputation: 4061

You need to add your jar(s) in your Talend job using tLibraryLoad component (one per jar).

tLibraryLoad
        |
OnSubjobOk
        |
Code using apache components

When you build your job, the jars will be bundled with it and added to your classpath (in .bat and .sh launchers).
I noticed you're setting a cookie in your code, maybe if you give more detail about your requirement I can recommend a solution using dedicated Talend components, as it's best to use native components whenever possible (or you can ask a separate question).

Upvotes: 2

Related Questions