# On Jenkins with Katalon Plugin, HTML report and CSV report are not generated. NO PROBLEM when running the same project in KSE

**URL:** <https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433>\
**Category:** Integrations\
**Tags:** integrations, katalon-studio\
**Created:** [September 8, 2022, 5:47pm UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433 "2022-09-08T17:47:37Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![gdearest07](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gdearest07/32/22419_2.png) [@gdearest07](https://forum.katalon.com/u/gdearest07)\
**Post date:** [September 8, 2022, 5:47pm UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/1 "2022-09-08T17:47:38Z")

</div>

_On Jenkins with Katalon Plugin, HTML report and CSV report are not generated_. **There is no problem with the reports when running the same project in KSE locally.**

In order to use Twilio functionality, the twilio-8.36.0-jar-with-dependencies.jar was added into the Driver folder as per [https://docs.katalon.com/docs/katalon-studio-enterprise/create-tests-and-projects/manage-projects/libraries-management](https://docs.katalon.com/docs/katalon-studio-enterprise/create-tests-and-projects/manage-projects/libraries-management)

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/7/e/7ef979687a4cb8c61bb794963683194e17d8c6bb.png)

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/e/0/e0f152e22d816c9f41265257c477c75006d143a0.png)

While running a Jenkins job with Katalon plugin, I’m getting the following WARN:

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/1/2/129357a4c963157c6e4f445ad47604886d63587f.png)

There is no problem when running the same job without the twilio-8.36.0-jar-with-dependencies.jar in the Driver folder :

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/7/d/7db22363d41b4bb403e3dfeed637611e854707bd.png)

---

<div class="post-metadata">

**Author:** ![gdearest07](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gdearest07/32/22419_2.png) [@gdearest07](https://forum.katalon.com/u/gdearest07)\
**Post date:** [September 8, 2022, 6:09pm UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/2 "2022-09-08T18:09:21Z")

</div>

It looks like there are some problems with Jenkins integration. What can be done so some of the **Katalon developers** was so kind to

1. create a simple Katalon project (just going to [google.com](http://google.com) or something like that)

2. put the twilio-8.36.0-jar-with-dependencies.jar from [Central Repository: com/twilio/sdk/twilio/8.36.0](https://repo1.maven.org/maven2/com/twilio/sdk/twilio/8.36.0/) into the Driver folder

3. set up a Jenkins job for this project and see what’s _wrong with the Katalon-Jenkins intregration_?

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 8, 2022, 11:56pm UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/3 "2022-09-08T23:56:07Z")

</div>

@gdearest07

You wrote:

> While running a Jenkins job with Katalon plugin, I’m getting the following WARN:  
> … java.io.FileNotFoundException … Logger.dtd

This is a frequently asked question in XML processing in Java.

I will tell you what I found. The program (KatalonReportListener) tried to read a `<projectDir>/Reports/.../execution0.log` and failed. The file is a XML file which starts with 2 lines:

```auto
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
...

```

The program tried to find the file named `logger.dtd` and could not, so the program failed. However you would not have the `logger.dtd` file, and the DTD file is usually not necessary to process the XML. So a common practice is to setup XML parser (XML Streaming Parser) to ignore the reference to the DTD. The following post is a sample where people ignore DTD.

> <https://stackoverflow.com/questions/8081214/ignoring-dtd-when-parsing-xml>

I guess, Katalon Studio equips this sort of trick to ignore DTD. Therefore your test&report task runs OK on Katalon Studio stand alone (not in Jenkins).

However, when your test&report task runs integrated in Jenkins, I suppose this _trick to ignore DTD_ disappers and a FileNotFoundException occured. Why? ---- the runtime environment in Jenkins has something to do with it.

In the stacktrace message, I found some names of classes belonging to **`com.ctc.wsts.sr*`** package.  
This package looks strange to me. I googled and found this package is included in the following project

- [Woodstox](https://github.com/FasterXML/woodstox)

I didn’t know this, but it seems to be a industry-wide well-known package of StAX (Streaming API for XML).

How this package was introduced into the runtime environment for @gdearest07?

I cloned [Katalon Plugin for Jenkins](https://github.com/jenkinsci/katalon-plugin) project to my local Mac, and built it using Maven. I got the dependency:tree of the plugin. I got the following output:

```auto
[e[1;34mINFOe[m] Scanning for projects...
[e[1;33mWARNINGe[m] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:3.11 is missing, no dependency information available
[e[1;33mWARNINGe[m] Failed to build parent project for org.jenkins-ci.plugins:katalon:hpi:1.0.32
[e[1;34mINFOe[m]
[e[1;34mINFOe[m] e[1m-------------------< e[0;36morg.jenkins-ci.plugins:katalone[0;1m >-------------------e[m
[e[1;34mINFOe[m] e[1mBuilding Katalon Plugin 1.0.32e[m
[e[1;34mINFOe[m] e[1m--------------------------------[hpi]---------------------------------e[m
[e[1;34mINFOe[m]
[e[1;34mINFOe[m] e[1m--- e[0;32mmaven-dependency-plugin:3.1.1:treee[m e[1m(default-cli)e[m @ e[36mkatalone[0;1m ---e[m
[e[1;34mINFOe[m] org.jenkins-ci.plugins:katalon:hpi:1.0.32
[e[1;34mINFOe[m] +- org.jenkins-ci.plugins:junit:jar:1.20:compile
[e[1;34mINFOe[m] | \- org.jenkins-ci.plugins:structs:jar:1.2:compile
[e[1;34mINFOe[m] | \- org.jenkins-ci:symbol-annotation:jar:1.2:compile
[e[1;34mINFOe[m] +- com.katalon:utils:jar:1.0.17:compile
[e[1;34mINFOe[m] | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[e[1;34mINFOe[m] | +- commons-io:commons-io:jar:2.11.0:compile
[e[1;34mINFOe[m] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.13.3:compile
[e[1;34mINFOe[m] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.3:compile
[e[1;34mINFOe[m] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.13.3:compile
[e[1;34mINFOe[m] | \- org.rauschig:jarchivelib:jar:1.2.0:compile
[e[1;34mINFOe[m] +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[e[1;34mINFOe[m] | +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
[e[1;34mINFOe[m] | \- commons-codec:commons-codec:jar:1.11:compile
[e[1;34mINFOe[m] +- org.jenkins-ci.plugins:plain-credentials:jar:1.3:compile
[e[1;34mINFOe[m] | \- org.jenkins-ci.plugins:credentials:jar:2.1.5:compile
[e[1;34mINFOe[m] | \- org.antlr:antlr4-runtime:jar:4.5:compile
[e[1;34mINFOe[m] | \- org.abego.treelayout:org.abego.treelayout.core:jar:1.0.1:compile
[e[1;34mINFOe[m] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[e[1;34mINFOe[m] +- org.jenkins-ci.main:jenkins-core:jar:1.625.3:provided
...
[e[1;34mINFOe[m] | +- org.codehaus.woodstox:wstx-asl:jar:3.2.9:provided
...

```

Ah, Jenkins Core depends in the Woodstox library! I am sure that the Woodstox libary is available in all runtime environment under Jenkins. Now I found the reason why the `com.ctc.wsts.sr.*` packages is there in the runtime evironment of @gdearest07’s test project.

* * *

My next question is this:

![スクリーンショット 2022-09-09 8.55.55](https://europe1.discourse-cdn.com/katalon/optimized/3X/0/b/0bd598dc1a86b611c5acd5bafe2fc37b92b53e55_2_690x26.png)

Here we see that the `com.kms.katalon.core.logging.TestSuiteXMLLogParser.processFile()` calls `com.ctc.wstx.sr.BasicStreamReader` class. Is it what Katalon Developer intended?

I think Katalon Developer did not intended this. Katalon Developer doesn’t know anything about `com.ctx.wstx.sr.*` package. They would be surprised to find the package is used in the runtime environment in Jenkins.

Why `TestSuiteXMLLogParser` is linked to `com.ctc.wstx.sr.BasicStreamReader` class? — You can find the reason by reading the source code.

- [https://github.com/katalon-studio/katalon-studio-testing-framework/blob/master/Include/scripts/groovy/com/kms/katalon/core/logging/TestSuiteXMLLogParser.java](https://github.com/katalon-studio/katalon-studio-testing-framework/blob/master/Include/scripts/groovy/com/kms/katalon/core/logging/TestSuiteXMLLogParser.java)

Line#53

```auto
        XMLInputFactory inputFactory = XmlInputFactoryProvider.newInstance();

```

Let’s see the javadoc of XmlInputFactoryProvider class at

- [XMLInputFactory (Java Platform SE 8 )](https://docs.oracle.com/javase/8/docs/api/javax/xml/stream/XMLInputFactory.html#newFactory--)

> Create a new instance of the factory.

> This static method creates a new factory instance. This method uses the following ordered lookup procedure to determine the XMLInputFactory implementation class to load:

> 1. Use the javax.xml.stream.XMLInputFactory system property.
> 2. Use the properties file “lib/stax.properties” in the JRE directory. This configuration file is in standard java.util.Properties format and contains the fully qualified name of the implementation class with the key being the system property defined above.
> 3. Use the service-provider loading facilities, defined by the [`ServiceLoader`](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) class, to attempt to locate and load an implementation of the service using the [default loading mechanism](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html#load-java.lang.Class-): the service-provider loading facility will use the [current thread’s context class loader](https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#getContextClassLoader--) to attempt to load the service. If the context class loader is null, the [system class loader](https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#getSystemClassLoader--) will be used.
> 4. Otherwise, the system-default implementation is returned.

I just guess:

- Jenkins applies one of the option 1, 2 or 3 to use `com.ctc.wstx.sr.\*` package with precedence to the system-default
- _Katalon Developer naively assumed that nobody would do the option 1,2 and 3._ **They expected the option 4 (the system-default implementation of XMLInputFactory is used) will be applied always.**

Now let me go back to the issue around `logger.dtd` file. You can ignore `logger.dtd` by configuring the StAX Parser class that implements XMLInputFactory. However, please note, the way to configure the StAX parser class is implementation specific. The StAX parser of `com.ctc.wstx.sr.` package would require programmers to follow its own way to configure ingoring DTD. And the system-default implementation of XMLInputFactory would require them to following its own way, which is different from the `com.ctc.wstx.sr`.

# Conclustion

`com.kms.katalon.core.logging.TestUiteXMLLogParser` class is too fragile. It is broken by Jenkins runtime environment.

@vu.tran

please escarate this issue to Katalon developers as appropriate

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 9, 2022, 12:22am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/4 "2022-09-09T00:22:37Z")

</div>

A corner-cutting solution could be: create a `logger.dtd` file with empty content, place it beside the `exectuion0.log` file. You will get no more FileNotFoundException. Emptiness of `logger.dtd` would do nothing harmful.

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 9, 2022, 12:28am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/5 "2022-09-09T00:28:37Z")

</div>

Katalon developer may change the code of TestSuiteXMLLogParser so that it explicity specify which class as XMLInputFactory it wants to instanciate.

---

<div class="post-metadata">

**Author:** ![gdearest07](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gdearest07/32/22419_2.png) [@gdearest07](https://forum.katalon.com/u/gdearest07)\
**Post date:** [September 9, 2022, 12:52am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/6 "2022-09-09T00:52:46Z")

</div>

Exelent analysis, @kazurayam!

I’m just wondering why it’s hapenning when the twilio-8.36.0-jar-with-dependencies.jar is in the Driver folder. Could it be somehow related to the fact that Katalon Plugin and the twilio-8.36.0-jar-with-dependencies.jar are using the same jars (as per [https://mvnrepository.com/artifact/com.twilio.sdk/twilio/8.36.0](https://mvnrepository.com/artifact/com.twilio.sdk/twilio/8.36.0)):

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/8/a/8a3a5337e4afe78eb6b642a13b6a85167c7a892c.jpeg)

By the way, interesting enough, Katalon Plugin is using

![image](https://europe1.discourse-cdn.com/katalon/original/3X/a/f/af642bd0d2df03507f20e807577f1ee94a7cf635.png)

but Katalon itself:

org.apache.httpcomponents.httpclient\_4.5.1.jar and

 ![image](https://europe1.discourse-cdn.com/katalon/original/3X/8/5/85c0974779d68992f8d8889a2a3c0d7cb12bc982.png)

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 9, 2022, 1:33am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/7 "2022-09-09T01:33:20Z")

</div>

> [@gdearest07](#):
>
> Could it be somehow related to the fact that Katalon Plugin and the twilio-8.36.0-jar-with-dependencies.jar are using the same jars

I don’t think so. As long as the class name is the same and the version number is the same, eigher will do. It doesn’t matter from which jar the class is loaded.

> [@gdearest07](#):
>
> but Katalon itself:
> 
> org.apache.httpcomponents.httpclient\_4.5.1.jar and

It is impossible to predict what will happen due to this version inconsistency.

4.5.13 & 4.5.1 ---- which version jar will be used? Either of them. Just I don’t know. It depends on how the Java Classloader is configured in the runtime environment. See [Java Classloader - Handling Multiple Versions of The Same Class - DZone](https://dzone.com/articles/java-classloader-handling) for your interest. I am sure that, Katalon Studio and Jenkins, both would use their own classloader. I know nothing about their implementation.

---

<div class="post-metadata">

**Author:** ![vu.tran](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/vu.tran/32/20584_2.png) [@vu.tran](https://forum.katalon.com/u/vu.tran)\
**Post date:** [September 9, 2022, 9:35am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/8 "2022-09-09T09:35:57Z")

</div>

Thank you @kazurayam for sharing this with me. I already raised the issue to our product team and asked them for the suggestions and expected timeline for solution (if any). I’ll keep you posted once the response is returned. Thank you.

---

<div class="post-metadata">

**Author:** ![annykeys](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/annykeys/32/21378_2.png) [@annykeys](https://forum.katalon.com/u/annykeys)\
**Post date:** [September 11, 2022, 3:22pm UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/9 "2022-09-11T15:22:28Z")

</div>

Nice info!

---

<div class="post-metadata">

**Author:** ![Jass](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/jass/32/9588_2.png) [@Jass](https://forum.katalon.com/u/Jass)\
**Post date:** [September 20, 2022, 7:49am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/10 "2022-09-20T07:49:42Z")

</div>

Assigned @duyluong on September 20, 2022, 7:49am UTC



---

<div class="post-metadata">

**Author:** ![vu.tran](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/vu.tran/32/20584_2.png) [@vu.tran](https://forum.katalon.com/u/vu.tran)\
**Post date:** [September 26, 2022, 6:32am UTC](https://forum.katalon.com/t/on-jenkins-with-katalon-plugin-html-report-and-csv-report-are-not-generated-no-problem-when-running-the-same-project-in-kse/69433/11 "2022-09-26T06:32:04Z")

</div>

Hi all, we got the confirmation that the issue is acknowledged and will plan for an improvement in the next release. Once again, thank you for your sharing. Best.
