jinjava
Jinja template engine for Java
https://github.com/HubSpot/jinjava
My B4J attempt:
Maven: https://repo1.maven.org/maven2/com/hubspot/jinjava/jinjava/2.7.3/jinjava-2.7.3.jar
I am getting the error:
Jinja template engine for Java
https://github.com/HubSpot/jinjava
Java:
Jinjava jinjava = new Jinjava();
Map<String, Object> context = Maps.newHashMap();
context.put("name", "Jared");
String template = Resources.toString(Resources.getResource("my-template.html"), Charsets.UTF_8);
String renderedTemplate = jinjava.render(template, context);
My B4J attempt:
B4X:
'Non-UI application (console / server application)
#Region Project Attributes
#CommandLineArgs:
#MergeLibraries: True
#End Region
#AdditionalJar: jinjava-2.7.3
Sub Process_Globals
End Sub
Sub AppStart (Args() As String)
Dim Jinjava As JavaObject
Jinjava.InitializeStatic("com.hubspot.jinjava.Jinjava")
Dim context As JavaObject
context.InitializeNewInstance("java.util.HashMap", Null)
context.RunMethod("put", Array("name", "B4X"))
Dim template As String = File.ReadString(File.DirAssets, "template.html")
Dim renderedTemplate As String = Jinjava.RunMethod("render", Array(template, context))
Log(renderedTemplate)
End Sub
Maven: https://repo1.maven.org/maven2/com/hubspot/jinjava/jinjava/2.7.3/jinjava-2.7.3.jar
I am getting the error:
B4X:
Waiting for debugger to connect...
Program started.
Error occurred on line: 18 (Main)
java.lang.IllegalArgumentException: object is not an instance of declaring class
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:132)
at b4j.example.main._appstart(main.java:81)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:234)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at b4j.example.main.main(main.java:29)
Program terminated (StartMessageLoop was not called).