2

I've bought a Trusted Certificate to sign my applets, in order to prevent warnings and issues introduced by last release of Oracle JRE (1.7.0.51).

Everything fine, except with an applet that use also external jars (in particular, axis2-1.5.4.jar)

I've signed also this jar with my new certificate, but i always obtain:

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis2/databinding/ADBBean
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NoClassDefFoundError: org/apache/axis2/databinding/ADBBean
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.axis2.databinding.ADBBean
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 42 more

during applet load. What's wrong?

UPDATE: this is my applet code.

<object width="200" height="200" code="AeDPeA2WS.class"    CODEBASE="/<path>/AeDPeA2WS/$FILE" name="AeDPeA2WS">
<param name="CODEBASE" value="/<path>/AeDPeA2WS/$FILE">
<param name="code" value="AeDPeA2WS.class">
<param name="name" value="AeDPeA2WS">
<PARAM NAME="MAYSCRIPT" VALUE="true">

<param name="archive" value="AeDPeA2WS.jar,axis2-kernel-1.4.1.jar,axis2-1.5.4.jar,activation-1.1.jar,axiom-api-1.2.10.jar,axis-wsdl4j-1.2.jar,backport-util-concurrent-3.1.jar,axiom-dom-1.2.10.jar,axiom-impl-1.2.10.jar,commons-codec-1.4.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,mail-1.4.jar,neethi-2.0.4.jar,woden-api-1.0M8.jar,XmlSchema-1.4.3.jar">

UPDATE 2

I tried to isolate every single part of code, adding it step-by-step. I found that the problem is when i declare this method:

private Base64Binary setMTOMEncoding (DataHandler dh) {
    Base64Binary bb = new Base64Binary();
    bb.setBase64Binary( dh );
    ContentType_type0 ct = new ContentType_type0();
    ct.setContentType_type0( dh.getContentType() );
    bb.setContentType( ct );
    return bb;
}

that's defined in this way:

    public static class Base64Binary implements org.apache.axis2.databinding.ADBBean{
    ......

this give me the exception: any idea?

Andrea Baglioni
  • 303
  • 1
  • 2
  • 20

1 Answers1

3

Found solution. I've missed to add in external jars manifest this:

Trusted-Library: true
Anatoliy Nikolaev
  • 22,370
  • 15
  • 69
  • 68
Andrea Baglioni
  • 303
  • 1
  • 2
  • 20
  • How did you add this attribute ? Did you directly took the .MF file and add this attribute ? I tried doing so, did not work.It says : Invalid manifest format. My manifest looks like this : Manifest-Version: 1.0 Created-By: 1.6.0_05 (Sun Microsystems Inc.) Name: HelloWorld.class SHA1-Digest: asfdasfdsadf= Name: HelloWorld$1.class SHA1-Digest: asdfsafd= Trusted-Library: true – java_enthu May 07 '14 at 11:38
  • Could be a problem of manifest file encoding. Take a look here http://docs.oracle.com/javase/tutorial/deployment/jar/modman.html – Andrea Baglioni May 07 '14 at 12:21
  • Andrea : I tried using m option also to modify the .MF file. I could add the attribute but I get the same error : Invalid Manifest format. IOException.! – java_enthu May 07 '14 at 13:19
  • However with Java minor version update 51 onwards, this Trustest-Library attribute is not mandatory. Manifest.MF must have 2 attributes. Codebase: < location/hostname on which you are going to deploy your jar> Permissions: One of two values (Sandbox or all-permissions) – java_enthu Jun 02 '14 at 06:23