2014-12-04 58 views
0

0.7我想调用一个Applet来使用令牌。Vaadin 7和applet

我做了各种测试: 1)AppletIntegration 1.2.9使用,但是当我把小应用程序有一个异常“ClassNotFoundException的PaintTarget” 2)​​下载旧版1.2.10但是当我CAL的页面我有例外“”Widgetset不包含org.vaadin.applet.AppletIntegration的实现。检查它的@ClientWidget映射,widgetset GWT模块描述文件并重新编译你的widgetset。如果您已下载vaadin附加软件包,则可能需要参阅附加组件说明。非再生UIDL:

org.vaadin.applet.AppletIntegration(没有客户端实施来找到)” 3)我创建了一个类AppletCustom

public class AppletCustom extends CustomComponent { 
 
    public AppletCustom(String codebase, 
 
      String archive, 
 
      String code, 
 
      String width, 
 
      String height, 
 
      Map<String, String> params) { 
 
     setCompositionRoot(new Label("<div id='appletDiv'></div>", ContentMode.HTML)); 
 
     StringBuilder sb = new StringBuilder(); 
 
       /* create the applet */ 
 
     sb.append("var obj = document.createElement('object');"); 
 
     sb.append("obj.setAttribute('type','application/x-java-applet');"); 
 
     sb.append("obj.setAttribute('width','" + width + "');"); 
 
     sb.append("obj.setAttribute('height','" + height + "');");   
 
     
 
     sb.append("var codeParam = document.createElement('param');"); 
 
     sb.append("codeParam.setAttribute('name', 'code');"); 
 
     sb.append("codeParam.setAttribute('value', '" + code + "');"); 
 
     sb.append("obj.appendChild(codeParam);");   
 
     
 
     sb.append("var archiveParam = document.createElement('param');"); 
 
     sb.append("archiveParam.setAttribute('name', 'archive');"); 
 
     sb.append("archiveParam.setAttribute('value','" + archive + "');"); 
 
     sb.append("obj.appendChild(archiveParam);"); 
 
      
 
     sb.append("var param = document.createElement('param');"); 
 
     sb.append("param.setAttribute('name', 'codebase');"); 
 
     sb.append("param.setAttribute('value','" + codebase + "');"); 
 
     sb.append("obj.appendChild(param);"); 
 
     
 
     /* add params to the applet if you like */ 
 
     if(params != null && !params.isEmpty()){ 
 
      Iterator<Entry<String, String>> it = 
 
        params.entrySet().iterator(); 
 
      while (it.hasNext()) { 
 
       Map.Entry<String, String> pairs = (Map.Entry<String, String>) it.next(); 
 
       sb.append("param = document.createElement('param');"); 
 
       sb.append("param.setAttribute('name', '" + pairs.getKey() + "');"); 
 
       sb.append("param.setAttribute('value','" + pairs.getValue() + "');"); 
 
       sb.append("obj.appendChild(param);"); 
 
      } 
 
     }   
 
     sb.append("document.getElementById('appletDiv').appendChild(obj);"); 
 
     JavaScript.getCurrent().execute(sb.toString()); 
 
    } 
 
}

和我把它在页面中。小程序正确显示,但我必须使用该方法返回值

vaadinUpdateVariable("docName", docName + SIGNED_FILE_SUFFIX, true);

我该如何解决我的问题?

回答

0

就像[Henri Sara] [3]说的,你可能会碰到两个Maven GWT插件错误之一:[MGWT-147] [1]或[MGWT-148] [2]。

我推荐这个博客对你:Vaadin addons and maven and eclipse.

请仔细阅读这也:Using Vaadin with Maven 2

来帮助你让你的附加工作。如果仍然没有解决,我会使用[Embedded] [6] ui组件并避免使用硬编码html标签。

我希望如果我帮你,如果不是,我很抱歉,所有我知道Vaadin +小程序。

1个#jira.codehaus(。)的有机/浏览/ MGWT-147

2个#jira.codehaus(。)的有机/浏览/ MGWT-148

3#vaadin(。)的COM/c/my_sites/view?groupId = 13199 & privateLayout = 0 4#vaadin(。)com/download/prerelease/7.0/7.0.0/7.0.0.rc2/docs/api/com/vaadin/ui/Embedded。 html