Bonjour,

Voici mon javascript :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
defineClass("com.iona.scripting.wsdlgen_utilities.Wsdltocpp");
var wsdlfile = "simple_service.wsdl"
var mapper = new Wsdltocpp(wsdlfile)
mapper.Execute()
Wsdltocpp est un host object.
J'obtiens cette rerrue lorsque j'execute mon javascript avec rhino :

W:\aspen\src\wsdlgen\com\iona\scripting\utilities>java org.mozilla.javascript.to
ols.shell.Main main.js
argument : simple_service.wsdl
org.mozilla.javascript.WrappedException: Wrapped java.lang.ClassCastException (m
ain.js#11)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:16
93)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:157)
at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411)
at org.mozilla.javascript.BaseFunction.construct(BaseFunction.java:310)
at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:206
7)
at org.mozilla.javascript.gen.c1._c0(main.js:11)
at org.mozilla.javascript.gen.c1.call(main.js)
Voici le contenu du host object :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 public static Scriptable jsConstructor(Context ctx, Object[] args, Function consObj, boolean expr) {
        Wsdltocpp result = new Wsdltocpp();
        if (args.length == 0 || args[0] == Context.getUndefinedValue()) {
            System.out.println(" provide one argument wsdl file "+ args[0]);
        } else {
             System.out.println(" argument : "+ args[0]);
            pargs=(String[])args;
            }
 
        return result;
    }
Ceci est le constructeur du host object : l'erreur semble venir du castage a pargs, Que faire d'autre pour caster ?

Le reste du code contient des methodes a invoquer !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
    public String getClassName() {
        return "Wsdltocpp";
    }
 
    public void jsFunction_Execute() {
        try {
            //HashSet set = new HashSet();
            System.out.println(" test 1");
            HashMap paramMap = new HashMap();
            System.out.println("  test 2");
            paramMap.put(WSDLToCppAction.CFG_CMD_ARG,pargs);
            System.out.println("  test 3");
            cppAction = new WSDLToCppAction();
            cppAction.setMergeMode(false);
            cppAction.doIt();
        } 
        catch (Exception ex) {
            System.err.println("Error : " + ex.getMessage());
            System.err.println();
            System.exit(1);
        }
    }