Hi Ivy Team

I am building a Docker image based on axonivy/axonivy-engine:7.2.1. In our project we have a few JARs which should go into the dropins folder but during Ivy startup I get the following error :

14:13:05.368 ERROR [org.apache.tomcat.util.digester.Digester] [localhost-startStop-1]    Begin event threw exception
    java.lang.ClassNotFoundException: com.axonivy.auth.valve.AuthenticationValve cannot be found by ch.ivyteam.tomcat_8.5.34.201810151000 ...

4:13:05.380 ERROR [...apache.catalina.startup.ContextConfig] [localhost-startStop-1]    Parse error in context.xml for [/ivy]
org.xml.sax.SAXParseException; systemId: file:/usr/lib/axonivy-engine-7x/webapps/ivy/META-INF/context.xml; lineNumber: 13; columnNumber: 66; Error at (13, 66) : com.axonivy.auth.valve.AuthenticationValve cannot be found by ch.ivyteam.tomcat_8.5.34.201810151000

So far I did the following:

1) Dockerfile:

COPY --chown=ivy:ivy axonivy7-engine-folder-setup/dropins/* /usr/lib/axonivy-engine-7x/dropins/

2) Check if files exist after Ivy startup:

ivy@22ae6389e9e5:/usr/lib/axonivy-engine-7x/dropins$ ls -ltr
total 956
-rwxr-xr-x 1 ivy ivy   2028 Mar  8  2018 README.html
-rwxr-xr-x 1 ivy ivy 962431 Jul 19  2018 com.axonivy.auth.valve.AuthenticationValve_1.0.0.201807190929.jar
-rwxr-xr-x 1 ivy ivy   1622 Aug  1  2018 workflow.klara_patchNoBusinessCaseQuery_1.0.0.201807311434.jar
-rw-r--r-- 1 ivy ivy   8078 Nov  5  2018 webserver.rest.extension.patch_1.0.0.201805241153.jar

3) Check if JARs are listed using ss in console, but all the JARs in dropins are not listed:

Axon.ivy Engine is running and ready to serve. [19778ms] Type 'shutdown' and confirm with ENTER to stop the running engine instance ss "Framework is launched."

id  State       Bundle
0   ACTIVE      org.eclipse.osgi_3.13.0.v20180409-1500
                Fragments=2, 1
1   RESOLVED    ch.ivyteam.ivy.osgi.classpatcher_7.2.1.201811131504
                Master=0
2   RESOLVED    org.eclipse.osgi.compatibility.state_1.1.100.v20180331-1743
                Master=0
3   ACTIVE      org.eclipse.equinox.simpleconfigurator_1.3.0.v20180502-1828

As far as I understood, one should copy the JARs into the dropins folder and it should work

Thanks & Regards John

asked 31.05 at 10:29

John%20Moser's gravatar image

John Moser
1137
accept rate: 0%

edited 11.06 at 03:45

Reguel%20Wermelinger's gravatar image

Reguel Werme... ♦♦
7.9k11549

There are already known issues for the dropins folder in a non-container world. Sometimes you have to restart the engine twice, that the plugin (jar) in the dropins folder will be recognized. I think that is really bad in a container environment - especially for orchestration platforms like kubernetes. We will analyze the problem and give you feedback. Thanks for reporting.

(03.06 at 02:04) Alex Suter ♦♦ Alex%20Suter's gravatar image

In this case it seems to be another problem. This classloading issue can occur if Eclipse-RegisterBuddy is not set to ch.ivyteam.tomcat in MANIFEST.MF. See https://github.com/ivy-samples/ivy-extension-demos/tree/master/ProcessingValve

Is it possible that you give us access to this jar, that we can reproduce this problem?

(03.06 at 02:15) Alex Suter ♦♦ Alex%20Suter's gravatar image

Alex, you mentioned, that the engine has to be restarted twice. Is it exactly twice or is it n times (and therefore unpredictable)?

(07.06 at 03:16) DanielGauch DanielGauch's gravatar image

As far as we know, it's always twice. We have created an issue for that and try to tackle this problem until ivy 8.0. But I think there will be at least one suitable workaround for our container customers, because we think you just have to make the correct entry in [engineDir]/system/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info,but I didn't had the time to check.

(07.06 at 11:21) Alex Suter ♦♦ Alex%20Suter's gravatar image
Be the first one to answer this question!
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×107
×31
×6

Asked: 31.05 at 10:29

Seen: 52 times

Last updated: 11.06 at 03:45