AnsweredAssumed Answered

Applet added to alfresco not working in Java7

Question asked by cperez on May 23, 2014
Latest reply on Nov 10, 2014 by jlabuelo
Hi there

We used to have added an applet to our Alfresco application (version 3.0 Community) which was build and compiled in Java 6. Since our systems needed to update to Java7 JVM the applet launch started to show all those anoying security messages and it was quite a pain for our users.

We readed the guideness of Java7 and it seems that we just needed to sign our jars involved in the applet with CA certificate. We did so and now all our jars are signed with the certificate correctly following the Java 7 guide and using Keystore tool. However we have found two issues now with all the applets that invoke these signed jars (for this example I am gonna show only one of our applets)

1) Applets take a lot now to load (before signing and in Java6 JVM used to take 15 secs and now we are talking about minutes!!!).

2) We find the ClassNotfoundException issue that avoids our applets to work.

Most important problem for us is the second issue "ClassNotFoundException" as after spending days reading about possible solutions we are not able to get it to work.

Our applet is in a jsp page inserted like this code

  
 <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>

<%@ page buffer="32kb" contentType="text/html;charset=UTF-8" %>
<%@ page isELIgnored="false" %>
<%@ page import="org.alfresco.web.scanApplet.ScanWizardApplet" %>
<%@ page import="javax.faces.context.FacesContext" %>
<%@ page import="org.alfresco.web.app.servlet.FacesHelper" %>
<%
ScanWizardApplet scan = (ScanWizardApplet)FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "ScanWizardApplet");
System.out.println("NodeRef space " + scan.getSpaceNodeRef().getId());
%>
<applet code="uk.co.mmscomputing.application.imageviewer.MainApp.class"
           codebase="<%= scan.getUrlAlfrescoApplet() %>"
           archive="scan-plugin-mmsc_v1.2.jar, alfresco-web-service-client.jar, jai_core.jar, jai_codec.jar, activation.jar, alfresco-core.jar, axis-1.4.jar, bcprov-jdk15-137.jar, commons-discovery-0.2.jar, commons-logging-1.1.jar, jaxrpc.jar, mail.jar, opensaml-1.0.1.jar, saaj.jar, wsdl4j-1.5.1.jar, wsdl4j-1.6.2.jar, wss4j.jar, xalan.jar, xercesImpl-2.8.0.jar, xmlsec-1.4.1.jar"
           width="100%" height="600" name="Veritas Scan">
           <PARAM name="scanFile" value="<%= scan.getFileName() %>">
           <PARAM name="container" value="<%= scan.getSpaceNodeRef().getId() %>">
           <PARAM name="multipage" value="<%= scan.getFactMultipage() %>">
           <PARAM name="urlAlfrescoWS" value="<%= scan.getUrlAlfrescoWS() %>">
           <PARAM name="ocr" value="<%= scan.getOcr() %>">
           <PARAM name="cif" value="<%= scan.getCIF() %>">
           <PARAM name="user" value="<%= scan.getUserName() %>">
           <PARAM name="ticket" value="<%= scan.getTicket() %>">
           <PARAM name="sessionId" value="<%= scan.getSessionId() %>">
           <PARAM name="java_arguments" value="-Xmx256m">
           <PARAM name="java_version" value="1.6*">
           <PARAM name="separate_jvm" value="true">
           Your browser does not support the applet tag.
         </applet> 


and the jars signed are in

tomcat/alfresco/applets

However when we try to launch this applet in its jsp page at the end we get this error message:

ClassNotFoundException

uk.co.mmscomputing.application.imageviewer.MainApp.class


(Please view attached image)



What we see in the java console is this:

   

     Java Plugin 10.55.2.13
    Usando versión de JRE 1.7.0_55-b13 Java HotSpot(TM) Client VM
    Directorio de inicio del usuario = C:\Documents and Settings\Dolores Sanguinetti
    —————————————————-
    c:   borrar ventana de consola
    f:   finalizar objetos en la cola de finalización
    g:   recopilación de basura
    h:   mostrar este mensaje de ayuda
    l:   volcar lista de classloader
    m:   imprimir uso de memoria
    o:   disparar registro
    q:   ocultar consola
    r:   recargar configuración de política
    s:   volcar propiedades del sistema y de despliegue
    t:   volcar lista de threads
    v:   volcar pila de threads
    x:   borrar caché de classloader
    0-5: definir nivel de rastreo en <n>
    —————————————————-
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/scan-plugin-mmsc_v1.2.jar]: updateAvailable=true,lastModified=Thu Jun 16 11:51:52 CEST 2011,length=6280199
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/scan-plugin-mmsc_v1.2.jar]: updateAvailable=true,lastModified=Thu Jun 16 11:51:52 CEST 2011,length=6280199
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-web-service-client.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:54 CET 2013,length=418382
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-web-service-client.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:54 CET 2013,length=418382
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_core.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=1966212
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_core.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=1966212
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_codec.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=267173
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_codec.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=267173
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/activation.jar]: updateAvailable=true,lastModified=Mon May 05 23:35:34 CEST 2014,length=59420
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/activation.jar]: updateAvailable=true,lastModified=Mon May 05 23:35:34 CEST 2014,length=59420
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-core.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:39 CET 2013,length=173167
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-core.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:39 CET 2013,length=173167
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/axis-1.4.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:52:13 CET 2013,length=1689344
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/axis-1.4.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:52:13 CET 2013,length=1689344
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/bcprov-jdk15-137.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:26 CEST 2010,length=1528841
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/bcprov-jdk15-137.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:26 CEST 2010,length=1528841
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-discovery-0.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:01 CET 2013,length=79805
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-discovery-0.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:01 CET 2013,length=79805
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-logging-1.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:15 CET 2013,length=58414
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-logging-1.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:15 CET 2013,length=58414
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jaxrpc.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:40 CET 2013,length=39674
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jaxrpc.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:40 CET 2013,length=39674
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/mail.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:43 CET 2013,length=364719
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/mail.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:43 CET 2013,length=364719
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/opensaml-1.0.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:02 CET 2013,length=112773
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/opensaml-1.0.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:02 CET 2013,length=112773
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/saaj.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=22324
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/saaj.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=22324
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.5.1.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=136990
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.5.1.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=136990
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.6.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:19 CET 2013,length=165762
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.6.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:19 CET 2013,length=165762
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wss4j.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:41 CET 2013,length=323332
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wss4j.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:41 CET 2013,length=323332
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xalan.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=3175437
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xalan.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=3175437
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xercesImpl-2.8.0.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=1280498
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xercesImpl-2.8.0.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=1280498
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xmlsec-1.4.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:23 CET 2013,length=455842
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xmlsec-1.4.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:23 CET 2013,length=455842
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/scan-plugin-mmsc_v1.2.jar]: updateAvailable=true,lastModified=Thu Jun 16 11:51:52 CEST 2011,length=6280199
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/scan-plugin-mmsc_v1.2.jar]: updateAvailable=true,lastModified=Thu Jun 16 11:51:52 CEST 2011,length=6280199
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-web-service-client.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:54 CET 2013,length=418382
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-web-service-client.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:54 CET 2013,length=418382
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_core.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=1966212
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_core.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=1966212
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_codec.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=267173
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jai_codec.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:30 CEST 2010,length=267173
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/activation.jar]: updateAvailable=true,lastModified=Mon May 05 23:35:34 CEST 2014,length=59420
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/activation.jar]: updateAvailable=true,lastModified=Mon May 05 23:35:34 CEST 2014,length=59420
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-core.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:39 CET 2013,length=173167
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/alfresco-core.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:51:39 CET 2013,length=173167
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/axis-1.4.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:52:13 CET 2013,length=1689344
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/axis-1.4.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:52:13 CET 2013,length=1689344
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/bcprov-jdk15-137.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:26 CEST 2010,length=1528841
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/bcprov-jdk15-137.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:26 CEST 2010,length=1528841
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-discovery-0.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:01 CET 2013,length=79805
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-discovery-0.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:01 CET 2013,length=79805
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-logging-1.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:15 CET 2013,length=58414
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/commons-logging-1.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:15 CET 2013,length=58414
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jaxrpc.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:40 CET 2013,length=39674
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/jaxrpc.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:53:40 CET 2013,length=39674
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/mail.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:43 CET 2013,length=364719
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/mail.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:43 CET 2013,length=364719
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/opensaml-1.0.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:02 CET 2013,length=112773
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/opensaml-1.0.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:02 CET 2013,length=112773
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/saaj.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=22324
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/saaj.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=22324
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.5.1.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=136990
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.5.1.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=136990
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.6.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:19 CET 2013,length=165762
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wsdl4j-1.6.2.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:19 CET 2013,length=165762
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wss4j.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:41 CET 2013,length=323332
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/wss4j.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:54:41 CET 2013,length=323332
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xalan.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=3175437
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xalan.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=3175437
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xercesImpl-2.8.0.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=1280498
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xercesImpl-2.8.0.jar]: updateAvailable=true,lastModified=Fri Oct 01 12:17:28 CEST 2010,length=1280498
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xmlsec-1.4.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:23 CET 2013,length=455842
    CacheEntry[http://IP_SERVER:8080/alfresco/applets/xmlsec-1.4.1.jar]: updateAvailable=true,lastModified=Fri Nov 29 12:55:23 CET 2013,length=455842


Any ideas about how can we get our applets back and running smoothly in Java7???
We need this so badly :-(.

Attachments

Outcomes