2015-12-24 22 views
1

我需要通過小應用程序打印一些信息。 我從簽署的QD-client.jar的小程序:從JavaScript調用小應用程序的方法

public class PrintText extends Applet implements Printable { 

private ClientAccount clientAccount; 

public ClientAccount getClientAccount() { 
    return clientAccount; 
} 

public void setClientAccount (ClientAccount clientAccount) { 
    this.clientAccount = clientAccount; 
} 

public void setClientAccountFromJSON(String json) { 
    this.clientAccount = toClientAccountFromJSON(json); 
    System.out.println("------------------------------SetClient"); 
} 

public int print(Graphics g, PageFormat format, int page) throws 
     ... 
} 

public void printText() throws PrinterException { 
    ... 
} 

private String getTextToPrint(ClientAccount clientAccount) throws PrinterException { 
    ... 
} 

private ClientAccount toClientAccountFromJSON(String json) { 
    return JsonUtils.fromJson(ClientAccount.class, json); 
} 

public void startPrint() { 
    System.out.println("------------------------------------------Start"); 
} 
} 

Accordinng JNLP:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.5+" codebase="http://localhost:10099/partials/" href="print.jnlp"> 
    <information> 
     .... 
    </information> 

<resources> 
    <jar href="/partials/qds-client.jar"/> 
    <jar href="/partials/core-3.2.1.jar"/> 
    <jar href="/partials/gson-2.3.1.jar"/> 
</resources> 

<applet-desc name="printText" main-class="com.qdsrest.utils.printer.PrintText" width="500" height="200"></applet-desc> 

<update check="background"/> 
<security> 
    <all-permissions/> 
</security> 

和HTML標籤:

<applet name="printApplet" jnlp_href="/partials/print.jnlp" width="10" height="10"> 
<param name="permissions" value="all-permissions"/> 
</applet> 

當我打電話applet的方法從這樣的js文件:

document.printApplet.setClientAccountFromJSON({/not empty/}); 

我得到

Error: Error calling method on NPObject! 
在Mozilla

basic: JNLP2ClassLoader.findClass: com.google.gson.internal.bind.CollectionTypeAdapterFactory: try again .. 
basic: JNLP2ClassLoader.findClass: com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter: try again .. 
basic: JNLP2ClassLoader.findClass: com.google.gson.internal.bind.MapTypeAdapterFactory: try again .. 
basic: JNLP2ClassLoader.findClass: com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter: try again .. 
basic: JNLP2ClassLoader.findClass: com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory: try again .. 

在Java控制檯和方法不起作用。爲什麼我會「再試一次..」?這是什麼意思? Method toClientAccountFromJSON使用GSON lib gson-2.3.1.jar將JSON對象完美反序列化爲Java對象。我做了什麼錯事?請告訴我,一個正確的思維方式。

回答

0

我不記得當前的細節,但很久以前在第一次瀏覽器大戰的時代,曾經有一個屬性mayscript您的小程序需要爲了與javascript交談。

哦,參數需要字符串:

setClientAccountFromJSON("somestring or stringvar"); 
+0

不幸的是,這是行不通的。 – Uranium

+0

你做了什麼改變?輸出是什麼? – Jan

+0

首先:將attr mayscript =「true」添加到 Uranium

相關問題