I know I started this a year ago and never got back until now, sorry.
I’m still having this problem. The Java console states that I have duplicate entries for a class I have defined. This class is in one of my JARs that both the Designer and Client use. So I have scoped that JAR with “DC”.
I’m still using the same module and Java versions when I started this discussion.
I have tried everyones suggestions but this problem remains.
Here are some details:
The dependency order is as follows: designer control depends on the client control which depends on a few JARs. Some of the JARs depend on each other; I made sure all JAR dependencies are included. Each of my JAR dependencies contain class paths to the dependent JARs within their own manifests. Here are my module jar statements:
<jar scope="C">utils.jar.pack.gz</jar>
<jar scope="C">exceptions.jar.pack.gz</jar>
<jar scope="C">core.jar.pack.gz</jar>
<jar scope="C">mcatypes.jar.pack.gz</jar>
<jar scope="C">math.jar.pack.gz</jar>
<jar scope="C">datasrcs.jar.pack.gz</jar>
<jar scope="C">radtypes.jar.pack.gz</jar>
<jar scope="C">analysis.jar.pack.gz</jar>
<jar scope="C">controls.jar.pack.gz</jar>
<jar scope="CD">spectroscopy-client.jar.pack.gz</jar>
<jar scope="D">spectroscopy-designer.jar.pack.gz</jar>
When I try to start the designer I add an error in the console indicating the designer control cannot find a class in my ‘controls.jar.pack.gz’ file. But my designer control is dependent on the spectroscopy-client.jar.pack.gz which depends on ‘controls.jar.pack.gz’ file. I tried changing the module.xml to include the jars like
<jar scope="C">utils.jar.pack.gz</jar>
<jar scope="C">exceptions.jar.pack.gz</jar>
<jar scope="C">core.jar.pack.gz</jar>
<jar scope="C">mcatypes.jar.pack.gz</jar>
<jar scope="C">math.jar.pack.gz</jar>
<jar scope="C">datasrcs.jar.pack.gz</jar>
<jar scope="C">radtypes.jar.pack.gz</jar>
<jar scope="C">analysis.jar.pack.gz</jar>
<jar scope="CD">controls.jar.pack.gz</jar>
<jar scope="CD">spectroscopy-client.jar.pack.gz</jar>
<jar scope="D">spectroscopy-designer.jar.pack.gz</jar>
But the next time I start the designer I get an error indicating I’m missing a class that I know is contained in ‘datasrcs.jar.pack.gz’. So I tried changing my module.xml to
<jar scope="C">utils.jar.pack.gz</jar>
<jar scope="C">exceptions.jar.pack.gz</jar>
<jar scope="C">core.jar.pack.gz</jar>
<jar scope="C">mcatypes.jar.pack.gz</jar>
<jar scope="C">math.jar.pack.gz</jar>
<jar scope="CD">datasrcs.jar.pack.gz</jar>
<jar scope="C">radtypes.jar.pack.gz</jar>
<jar scope="C">analysis.jar.pack.gz</jar>
<jar scope="CD">controls.jar.pack.gz</jar>
<jar scope="CD">spectroscopy-client.jar.pack.gz</jar>
<jar scope="D">spectroscopy-designer.jar.pack.gz</jar>
At this point I see an error in the Java console indicating duplicate class definitions found while unpacking ‘datasrcs.jar.pack.gz’.
Downloading “http://localhost:8088/main/system/jar/mcom.canberra.opcua/datasrcs.jar” (timeout=60000)…
Connect successful.
Starting download of 6764 bytes
Download successful (in 1ms), unpacking…
Download attempt #1 for file datasrcs.jar failed.
java.lang.Exception: Error unpacking datasrcs.jar
at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep.downloadJar(DownloadJarsStep.java:224)
at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep.run(DownloadJarsStep.java:78)
at com.inductiveautomation.ignition.client.launch.AbstractStepRunner.run(AbstractStepRunner.java:32)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.zip.ZipException: duplicate entry: com/canberra/controllable/IControllable.class
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:233)
at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:109)
at com.sun.java.util.jar.pack.NativeUnpack.writeEntry(NativeUnpack.java:323)
at com.sun.java.util.jar.pack.NativeUnpack.run(NativeUnpack.java:226)
at com.sun.java.util.jar.pack.NativeUnpack.run(NativeUnpack.java:247)
at com.sun.java.util.jar.pack.UnpackerImpl.unpack(UnpackerImpl.java:136)
at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep.downloadJar(DownloadJarsStep.java:221)
Thanks