Sling Servlet as a Service in CQ5 (OSGi Bundle) - servlets
We trying to create a osgi backend service for CQ5. We are using the cqblueprints archetype with eclipse as the dev environment. And we are able to deploy it to CQ using the console. In the CQ Web console we can view the details of the bundle as
com.acme.wcm.cq - acme-corporate-servicescom.acme.wcm.cq.acme-corporate-services
Symbolic Name com.acme.wcm.cq.acme-corporate-services
Version 1.0.0.SNAPSHOT
Bundle Location inputstream:acme-corporate-services-1.0.0-SNAPSHOT.jar
Last Modification Fri Apr 18 12:30:34 PDT 2014
Description Bundle containing the backend services for acme CQ
Start Level 20
Bundle Classpath .,OSGI-INF/lib/json-simple-1.1.jar,OSGI-INF/lib/commons-lang-2.3.jar,OSGI-INF/lib/gson-2.2.4.jar,OSGI-INF/lib/org.apache.servicemix.bundles.rome-1.0_3.jar,OSGI-INF/lib/org.apache.servicemix.bundles.jdom-2.0.2_1.jar,OSGI-INF/lib/org.apache.servicemix.bundles.jaxen-1.1.6_1.jar,OSGI-INF/lib/org.apache.servicemix.bundles.dom4j-1.6.1_5.jar,OSGI-INF/lib/xml-apis-1.0.b2.jar
Exported Packages com.acme.wcm.cq.exception,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.feed,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.feed.util,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.filter,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.osgi,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.search,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.servlet,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.servlet.model,version=1.0.0.SNAPSHOT
com.acme.wcm.cq.util,version=1.0.0.SNAPSHOT
Imported Packages com.day.cq.search,version=0.0.0 from com.day.cq.cq-search (209)
com.day.cq.search.result,version=0.0.0 from com.day.cq.cq-search (209)
com.day.cq.wcm.api,version=1.0.0 from com.day.cq.wcm.cq-wcm-api (288)
javax.jcr,version=2.0.0 from org.apache.sling.jcr.jcr-wrapper (76)
javax.jcr,version=1.1.0 from org.apache.sling.jcr.jcr-wrapper (76)
javax.servlet, ble,version=0.0.0.1_007_JavaSE from org.apache.felix.framework (0)
javax.swing.tree,version=0.0.0.1_007_JavaSE from org.apache.felix.framework (0)
javax.xml.bind,version=2.1.0 from org.apache.felix.framework (0)
javax.xml.namespace,version=0.0.0.fragment_xml from org.apache.felix.framework (0)
javax.xml.stream,version=1.0.0 from org.apache.felix.framework (0)
javax.xml.stream.events,version=1.0.0 from org.apache.felix.framework (0)
javax.xml.stream.util,version=1.0.0 from org.apache.felix.framework (0)
javax.xml.validation,version=0.0.0.fragment_xml from org.apache.felix.framework (0)
org.apache.sling.api,version=2.2.0 from org.apache.sling.api (123)
org.apache.sling.api.request,version=2.3.0 from org.apache.sling.api (123)
org.apache.sling.api.resource,version=2.3.2 from org.apache.sling.api (123)
org.apache.sling.api.servlets,version=2.1.0 from org.apache.sling.api (123)
org.osgi.framework,version=1.6.0 from org.apache.felix.framework (0)
org.slf4j,version=1.6.4 from slf4j.api (14)
Manifest Headers Bnd-LastModified: 1397849403046
Build-Jdk: 1.7.0_45
Built-By: jsunny
Bundle-Activator: com.acme.wcm.cq.osgi.Activator
Bundle-ClassPath: ., OSGI-INF/lib/json-simple-1.1.jar, OSGI-INF/lib/commons-lang-2.3.jar, OSGI-INF/lib/gson-2.2.4.jar, OSGI-INF/lib/org.apache.servicemix.bundles.rome-1.0_3.jar, OSGI-INF/lib/org.apache.servicemix.bundles.jdom-2.0.2_1.jar, OSGI-INF/lib/org.apache.servicemix.bundles.jaxen-1.1.6_1.jar, OSGI-INF/lib/org.apache.servicemix.bundles.dom4j-1.6.1_5.jar, OSGI-INF/lib/xml-apis-1.0.b2.jar
Bundle-Description: Bundle containing the backend services for acme CQ
Bundle-ManifestVersion: 2
Bundle-Name: com.acme.wcm.cq - acme-corporate-services
Bundle-SymbolicName: com.acme.wcm.cq.acme-corporate-services
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Embed-Dependency: *; scope=compile|runtime
Embed-Directory: OSGI-INF/lib
Embed-Transitive: true
Embedded-Artifacts: OSGI-INF/lib/json-simple-1.1.jar; g="com.googlecode.json-simple"; a="json-simple"; v="1.1", OSGI-INF/lib/commons-lang-2.3.jar; g="commons-lang"; a="commons-lang"; v="2.3", OSGI-INF/lib/gson-2.2.4.jar; g="com.google.code.gson"; a="gson"; v="2.2.4", OSGI-INF/lib/org.apache.servicemix.bundles.rome-1.0_3.jar; g="org.apache.servicemix.bundles"; a="org.apache.servicemix.bundles.rome"; v="1.0_3", OSGI-INF/lib/org.apache.servicemix.bundles.jdom-2.0.2_1.jar; g="org.apache.servicemix.bundles"; a="org.apache.servicemix.bundles.jdom"; v="2.0.2_1", OSGI-INF/lib/org.apache.servicemix.bundles.jaxen-1.1.6_1.jar; g="org.apache.servicemix.bundles"; a="org.apache.servicemix.bundles.jaxen"; v="1.1.6_1", OSGI-INF/lib/org.apache.servicemix.bundles.dom4j-1.6.1_5.jar; g="org.apache.servicemix.bundles"; a="org.apache.servicemix.bundles.dom4j"; v="1.6.1_5", OSGI-INF/lib/xml-apis-1.0.b2.jar; g="xml-apis"; a="xml-apis"; v="1.0.b2"
Export-Package: com.acme.wcm.cq.exception; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.feed; uses:="javax.jcr, com.day.cq.search.result, org.apache.sling.api.resource"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.feed.util; uses:="javax.jcr, com.day.cq.search.result, org.apache.sling.api.resource"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.filter; uses:="javax.servlet, org.apache.sling.api.request, org.apache.sling.api, org.slf4j"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.osgi; uses:="org.osgi.framework"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.search; uses:="javax.jcr, com.day.cq.search.result, org.apache.sling.api"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.servlet; uses:="org.apache.sling.api.servlets, javax.servlet, org.apache.sling.api, org.slf4j, javax.jcr, com.acme.wcm.cq.search, com.day.cq.search.result, com.acme.wcm.cq.exception, com.acme.wcm.cq.servlet.model"; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.servlet.model; version="1.0.0.SNAPSHOT", com.acme.wcm.cq.util; uses:="javax.jcr, com.day.cq.search.result, org.apache.sling.api, com.day.cq.search, org.apache.sling.api.resource, com.day.cq.wcm.api, org.apache.sling.api.servlets, javax.servlet"; version="1.0.0.SNAPSHOT"
Import-Package: com.acme.wcm.cq.search, com.day.cq.search, com.day.cq.search.result, com.day.cq.wcm.api, com.sun.msv.datatype; resolution:=optional, com.sun.msv.datatype.xsd; resolution:=optional, javax.jcr; version="[2.0, 3)", javax.servlet, javax.swing.table, javax.swing.tree, javax.xml.bind, javax.xml.namespace, javax.xml.stream, javax.xml.stream.events, javax.xml.stream.util, javax.xml.validation, nu.xom; resolution:=optional, org.apache.sling.api; version="[2.2, 3)", org.apache.sling.api.request; version="[2.2, 3)", org.apache.sling.api.resource; version="[2.1, 3)", org.apache.sling.api.servlets; version="[2.1, 3)", org.gjt.xpp; resolution:=optional, org.jdom; resolution:=optional, org.jdom.input; resolution:=optional, org.jdom.output; resolution:=optional, org.osgi.framework; version="[1.4, 2)", org.relaxng.datatype; resolution:=optional, org.slf4j; version="[1.6, 2)", org.xmlpull.v1; resolution:=optional
Manifest-Version: 1.0
Tool: Bnd-1.50.0
But, if I search in the Services menu (in the Felix Console) nothing I could find which I have created.
Is this normal? To verify this I have crated a Simple servelet
import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.slf4j.Logger;
org.slf4j.LoggerFactory;
#Component(immediate = true, metatype = false)
#Service(value = javax.servlet.Servlet.class)
#Properties(value = { #Property(name = "sling.servlet.methods", value = { "GET" }),
#Property(name = "sling.servlet.paths", value = { "/path/to/my/servlet", "/apps/path/to/my/servlet" }) })
public class AbsoluteUrlServlet extends SlingSafeMethodsServlet {
private static final long serialVersionUID = -1920460619265757059L;
private static final Logger logger = LoggerFactory.getLogger(AbsoluteUrlServlet.class);
#Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
logger.debug("AbsoluteUrlServlet::doGet()");
response.setContentType("text/plain");
response.getOutputStream().print("Hello AbsoluteUrlServlet World!");
}
}
But, when I request the servlet from browser,
http://localhost:4502/apps/path/to/my/servlet
I'm getting the following error.
No resource found
Cannot serve request to /apps/path/to/my/servlet in /libs/sling/servlet/errorhandler/404.jsp
Request Progress:
0 (2014-04-18 12:33:58) TIMER_START{Request Processing}
0 (2014-04-18 12:33:58) COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>
0 (2014-04-18 12:33:58) LOG Method=GET, PathInfo=/apps/path/to/my/servlet
0 (2014-04-18 12:33:58) TIMER_START{ResourceResolution}
0 (2014-04-18 12:33:58) TIMER_END{0,ResourceResolution} URI=/apps/path/to/my/servlet resolves to Resource=NonExistingResource, path=/apps/path/to/my/servlet
1 (2014-04-18 12:33:58) LOG Resource Path Info: SlingRequestPathInfo: path='/apps/path/to/my/servlet', selectorString='null', extension='null', suffix='null'
1 (2014-04-18 12:33:58) TIMER_START{ServletResolution}
1 (2014-04-18 12:33:58) TIMER_START{resolveServlet(NonExistingResource, path=/apps/path/to/my/servlet)}
1 (2014-04-18 12:33:58) LOG {0}: no servlet found
1 (2014-04-18 12:33:58) TIMER_END{0,resolveServlet(NonExistingResource, path=/apps/path/to/my/servlet)} Using servlet org.apache.sling.servlets.get.DefaultGetServlet
1 (2014-04-18 12:33:58) TIMER_END{0,ServletResolution} URI=/apps/path/to/my/servlet handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet
1 (2014-04-18 12:33:58) LOG Applying Requestfilters
1 (2014-04-18 12:33:58) LOG Calling filter: org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter
1 (2014-04-18 12:33:58) LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
Please provide some pointers to solve the issue.
Finally able to find the reason.
I missed the maven-scr-plugin in my POM.xml due to which the serviceComponents.xml was missing in my bundle.(Please see My previous thread)
Related
Expression in responseValidator in http:request in mule
I use mule-http-connector version 1.6.0 in mule 4.4 community edition (MuleSoft 4 ce) and I get a response (aka GraphQL): { "success": true, "data": ... } I want validate the response by cheking success field. I can made validation by use two…four components (http:response, choice, raise…), but I found in Anypoint Studio 7.11 in component properties «Reponse» → «Response validator» → «Expression or Bean reference». I don't want use «Bean reference» and write java code, but I want use «Expression». I wrote that: %dw 2.0 output application/json --- payload.success But I got error: "org.mule.weave.v2.exception.UnexpectedFunctionCallTypesException: You called the function 'Value Selector' with these arguments: 1: Binary ("" as Binary {base: "64"}) 2: Name ("success") If I write something: %dw 2.0 output application/json --- true I got that error: org.mule.weave.v2.exception.WriterExecutionException: Unable to convert 'true' with class 'java.lang.Boolean' to class 'ResponseValidator' 4| true ^^^^ Trace: at anonymous::main (line: 4, column: 1), while writing Java at 4| true ^^^^. 4| true ^^^^ Trace: at anonymous::main (line: 4, column: 1) " evaluating expression: "%dw 2.0 output application/json --- true". How to write a dw expression in a response validation?
That's not how response validation should be used. By default -when using a string- it validates HTTP status codes against ranges of status codes in the string. If you want to implement your custom validation you have to extend Java class org.mule.extension.http.api.request.validator.RangeStatusCodeValidator. Example: public class MyValidator extends RangeStatusCodeValidator { public MyValidator() {} public MyValidator(String values) { setValues(values); } #Override public void validate(Result<InputStream, HttpResponseAttributes> result, HttpRequest request) { int status = result.getAttributes().get().getStatusCode(); String method = request.getMethod(); if ((!belongs(status)) && (!method.equals("GET"))) { throwValidationException(result, request, status); } } } Then instantiate it in you flow and reference it in the response validator: <java:new doc:name="New" class="validator.MyValidator" constructor='MyValidator(String)' target="out"> <java:args ><![CDATA[#[{arg0:"500"}]]]></java:args> </java:new> <http:request method="POST" doc:name="Request" config-ref="HTTP_Request_configuration" responseValidator='#[vars.out]' path="/endpoint"> </http:request> Alternatively you can instance the class from DataWeave: <http:request method="POST" doc:name="Request" config-ref="HTTP_Request_configuration" responseValidator='#[%dw 2.0 import java!validator::MyValidator output application/java --- MyValidator::new("500")]' path="/endpoint"> </http:request> Source: https://help.mulesoft.com/s/article/How-to-define-a-custom-HTTP-response-validator-in-Mule-Runtime-4-x
Why does Leak Canary detect Google firebase APIs as Leaks?
Why does Leak Canary detect Google firebase APIs as Leaks? When I launch an app while using firebase, it keeps on detecting memory leaks. Is there a way to stop this? Thanks. ┬─── │ GC Root: Global variable in native code │ ├─ com.google.firebase.auth.api.fallback.service.zza instance │ Leaking: UNKNOWN │ Retaining 634 B in 9 objects │ zza instance of com.google.firebase.auth.api.fallback.service. │ FirebaseAuthFallbackService │ ↓ zza.zza │ ~~~ ╰→ com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService instance Leaking: YES (ObjectWatcher was watching this because com.google.firebase. auth.api.fallback.service.FirebaseAuthFallbackService received Service#onDestroy() callback) Retaining 606 B in 8 objects key = 7ab80331-3185-47d4-b999-118434212080 watchDurationMillis = 5284 retainedDurationMillis = 278 mApplication instance of com.example.app.App mBase instance of android.app.ContextImpl METADATA Build.VERSION.SDK_INT: 27 Build.MANUFACTURER: iLA LeakCanary version: 2.6 App process name: com.example.app Stats: LruCache[maxSize=3000,hits=1327,misses=42351,hitRate=3%] RandomAccess[bytes=2171000,reads=42351,travel=15377633875,range=14122402,size=17 486349] Heap dump reason: 1 retained objects, app is not visible Analysis duration: 16095 ms```
https://github.com/firebase/firebase-android-sdk/issues/2387 Edited: Here is the suggested workaround to ignore that small leak from the site: First, disable the automatic install: <resources> <bool name="leak_canary_watcher_auto_install">false</bool> </resources> Then install LeakCanary manually in your debug application, ignoring FirebaseAuthFallbackService: class DebugExampleApplication : ExampleApplication() { override fun onCreate() { super.onCreate() val delegate = ReachabilityWatcher { watchedObject, description -> if (watchedObject::class.java.name != "com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService instance") { AppWatcher.objectWatcher.expectWeaklyReachable(watchedObject, description) } } val watchersToInstall = AppWatcher.appDefaultWatchers(application, delegate) AppWatcher.manualInstall( application = application, watchersToInstall = watchersToInstall ) } }
Storm-R integration
I am trying to integrate my R script with Storm. The code for my Rbolt is: public class RBolt extends ShellBolt implements IRichBolt { public RBolt() { super("Rscript", "storm_OR.R"); } #Override public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) { outputFieldsDeclarer.declare(new Fields("OR")); } #Override public Map<String, Object> getComponentConfiguration() { Config ret = new Config(); ret.setMaxTaskParallelism(1); return ret; } } I am getting the following error. Any help? I have made sure that the path variables have path of R and Rscript. 17469 [Thread-12-__system] INFO backtype.storm.daemon.executor - Preparing bolt __system:(-1) 17474 [Thread-12-__system] INFO backtype.storm.daemon.executor - Prepared bolt __system:(-1) 17480 [Thread-6] INFO backtype.storm.daemon.executor - Loading executor RBolt:[1 1] 17483 [Thread-6] INFO backtype.storm.daemon.executor - Loaded executor tasks RBolt:[1 1] 17491 [Thread-6] INFO backtype.storm.daemon.executor - Finished loading executor RBolt:[1 1] 17491 [Thread-6] INFO backtype.storm.daemon.worker - Launching receive-thread for 8d8a13de-5e87-4e14-b2c2-59b4dfc070c6:1027 17493 [Thread-14-RBolt] INFO backtype.storm.daemon.executor - Preparing bolt RBolt:(1) 17496 [Thread-15-worker-receiver-thread-0] INFO backtype.storm.messaging.loader - Starting receive-thread: [stormId: EventProcessing-1-1457335172, port: 1027, thread-id: 0 ] 17500 [Thread-14-RBolt] INFO backtype.storm.utils.ShellProcess - Storm multilang serializer: backtype.storm.multilang.JsonSerializer 17510 [Thread-14-RBolt] ERROR backtype.storm.util - Async loop died! java.lang.RuntimeException: Error when launching multilang subprocess at backtype.storm.utils.ShellProcess.launch(ShellProcess.java:64) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating] at backtype.storm.task.ShellBolt.prepare(ShellBolt.java:99) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating] at backtype.storm.daemon.executor$fn__5641$fn__5653.invoke(executor.clj:690) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating] at backtype.storm.util$async_loop$fn__457.invoke(util.clj:429) ~[storm-core-0.9.2-incubating.jar:0.9.2-incubating] at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] Caused by: java.io.IOException: Cannot run program "Rscript" (in directory "/tmp/933c85f3-f5b5-4a60-b342-7d4969b43d46/supervisor/stormdist/EventProcessing-1-1457335172/resources"): error=2, No such file or directory This directory in tmp folder does not exist and is created on the fly. Any suggestions please. UPDATE: Resolved this by creating another resources folder in the resources folder of the project such that the jar has a resources folder with the R script in it.
The whole purpose of "shell" components is to start as an independent process, therefore your script needs to implement multilang protocol. Alternatively you can find a library that implements the protocol and has R integration, like FsStorm: it implements multilang and you can call R functions via R type provider.
How to use Spark 1.2.0 in Play 2.2.3 project as it fails with NoSuchMethodError: akka.util.Helpers?
Have you ever had a problem with Play framework? In my case, first of all I have build all in one jar: spark-assebmly-1.2.0-hadoop2.4.0.jar, and Spark works perfectly from a shell. But there are two questions: Should I use this assebmled Spark_jar in Play_project and how?? Because I try to move it into the lib_directiry and it did n`t help to provide any Spark_imports. If I'm defining Spark library like: "org.apache.spark" %% "spark-core" % "1.2.0" PLAY FRAMEWORK CODE: Build.scala : val appDependencies = Seq( jdbc ,"org.apache.spark" %% "spark-streaming" % "1.2.0" ,"org.apache.spark" %% "spark-core" % "1.2.0" ,"org.apache.spark" %% "spark-sql" % "1.2.0" TestEntity.scala : package models import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.hadoop.conf.Configuration import models.SparkMain import org.apache.spark.rdd.RDD import org.apache.spark.SparkContext._ object TestEntity { val TestEntityPath = "/home/t/PROD/dict/TestEntity .txt" val TestEntitySpark= SparkMain.sc.textFile(TestEntityPath, 4).cache val TestEntityData = TestEntitySpark.flatMap(_.split(",")) def getFive() : Seq[String] = { println("TestEntity.getFive") TestEntityData.take(5) } } SparkMain.scala : package models import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.hadoop.conf.Configuration import org.apache.spark.rdd.RDD import org.apache.spark.SparkContext._ import org.apache.spark.streaming.{ Seconds, StreamingContext } import StreamingContext._ import org.apache.spark.sql.SQLContext import org.apache.spark.SparkConf object SparkMain { val driverPort = 8080 val driverHost = "localhost" val conf = new SparkConf(false) // skip loading external settings .setMaster("local[4]") // run locally with enough threads .setAppName("firstSparkApp") .set("spark.logConf", "true") .set("spark.driver.port", s"$driverPort") .set("spark.driver.host", s"$driverHost") .set("spark.akka.logLifecycleEvents", "true") val sc = new SparkContext(conf) } and controller code, which use Spark stuff : def test = Action { implicit req => { val chk = TestEntity.getFive Ok("it works") } } ..in runtime a have this errors: [info] o.a.s.SparkContext - Spark configuration: spark.akka.logLifecycleEvents=true spark.app.name=firstSparkApp spark.driver.host=localhost spark.driver.port=8080 spark.logConf=true spark.master=local[4] [warn] o.a.s.u.Utils - Your hostname, uisprk resolves to a loopback address: 127.0.1.1; using 10.0.2.15 instead (on interface eth0) [warn] o.a.s.u.Utils - Set SPARK_LOCAL_IP if you need to bind to another address [info] o.a.s.SecurityManager - Changing view acls to: t [info] o.a.s.SecurityManager - Changing modify acls to: t [info] o.a.s.SecurityManager - SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(t); users with modify permissions: Set(t) [error] application - ! #6l039e8d5 - Internal server error, for (GET) [/ui] -> play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchMethodError: akka.util.Helpers$.ConfigOps(Lcom/typesafe/config/Config;)Lcom/typesafe/config/Config;]] at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.3.jar:2.2.3] at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10-2.2.3.jar:2.2.3] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$13$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:166) [play_2.10-2.2.3.jar:2.2.3] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$13$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:163) [play_2.10-2.2.3.jar:2.2.3] at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library-2.10.4.jar:na] at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [scala-library-2.10.4.jar:na] Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodError: akka.util.Helpers$.ConfigOps(Lcom/typesafe/config/Config;)Lcom/typesafe/config/Config; at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:314) ~[play_2.10-2.2.3.jar:2.2.3] at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:109) ~[play_2.10-2.2.3.jar:2.2.3] at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:109) ~[play_2.10-2.2.3.jar:2.2.3] at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10-2.2.3.jar:2.2.3] at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:108) ~[play_2.10-2.2.3.jar:2.2.3] at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:107) ~[play_2.10-2.2.3.jar:2.2.3] Caused by: java.lang.NoSuchMethodError: akka.util.Helpers$.ConfigOps(Lcom/typesafe/config/Config;)Lcom/typesafe/config/Config; at akka.remote.RemoteSettings.<init>(RemoteSettings.scala:48) ~[akka-remote_2.10-2.3.4-spark.jar:na] at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:114) ~[akka-remote_2.10-2.3.4-spark.jar:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_72] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_72] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_72] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_72] How to tie the library? through dependency or assembled_jar? Any advice, please.
nosuchmethodeersrror exception is 100 % due to mismatch of jars version at compile time and runtime. check the versions of jar. Also I have some questions about architecture of your app Instead of calling spark code from play framework you can also call spark submit from shell scripts which looks better in your case. Even you can do it from your play application. no need to include jar in play app classpath.
The problem with the configuration is Akka dependency of Apache Spark and Play Framework -- they both depend on Akka and, as you've faced it, different and incompatible versions should be resolved at build time with evicted command in sbt. You may want to use update command and find the reports in target/resolution-cache/reports quite useful.
JavaFX not working properly with Internet Exploer 9 and 10 ( if Document mode is set to IE9 )
I faced a problem in depolying JavaFX app in web and I got issue only with IE10 or IE9 and to be more precisely when the Document Mode is 9 , issue is that Browser cannot recognize the object 'app' which will be defined by JavaFx after being loaded . This object 'app' calls function 'tellme' with parameters. What I expect to see log on browser console: "____a OK maher", but what I get is an error message: SCRIPT438: Object doesn't support property or method 'tellme' Other info: after launching Java there is prompt about publisher, permissions, see Image#1 just accept and go on. Website requests access and control over JavaFx app ( there is JS <==> JavaFX ) and so there is a security warning about that and requests user to allow. see Image #2 Here I noted that in Document Mode IE9 I got this warning immediately after first one ..but on other browsers ( including DM IE8,DM IE7 ) its appearing after pressing clicl that means after calling JavaFx from JS via app.tellme Again Issue only with IE, with other browser its OK ( Chrome, Opera, FF,.. etc ) also no issue with earlier versions of IE 7 and 8 ; briefly I have the problem only if IE document mode is set to IE9 This has nothing with Signing .. I have a valid sign code cert ..and surely I set correct permissions on manifest ( codebase, permissions, ...etc) but really this has nothing with this issue .. only 2nd warning disappears but issue still persists. To simulate the issue: 1-Open main.html (codes below) with IE9 or IE10, press F12 to set Document Mode to IE 9. 2-press start, and accept to run that app, then accept the following prompt to allow accessing JavaFx via JS. 3-press clicl, on browser console you will see the error message .. what I expected to solve this issue to see output :"____a OK maher" codes: main.java ( JavaFX app) :updated /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.im.oor; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import netscape.javascript.JSObject; /** * * #author maher */ public class Main extends Application { #Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler<ActionEvent>() { #Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); publishServices(); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } private static JSObject jsWin; private void publishServices() { try { JSObject jsWins = getHostServices().getWebContext(); jsWins.setMember("app", new JavaAplicationCallBack()); } catch (Exception e) { System.err.println("error with JSObject : "+e.getMessage()); } } public class JavaAplicationCallBack { public String tellme(String uu) { return "OK " + uu; } } /** * The main() method is ignored in correctly deployed JavaFX application. * main() serves only as fallback in case the application can not be * launched through deployment artifacts, e.g., in IDEs with limited FX * support. NetBeans ignores main(). * * #param args the command line arguments */ public static void main(String[] args) { launch(args); } } main.html (webpage):updated <!DOCTYPE html> <html> <head> <!--<meta http-equiv="X-UA-Compatible" content="IE=8">--> <script src="web-files/dtjava.js" type="text/javascript" ></script> <script src="jfx.js" type="text/javascript" ></script> <script src="http://code.jquery.com/jquery-1.7.min.js"> </script> <script> $(document).ready(function() { $("a.ll").live("click", function(event) { callit('hi '); }); }); </script> </head> <body> <a href="#" onclick="launchit();" >start</a> <a class='ll' href="#" >clicl</a> <!-- Applet will be inserted here --> <div id='javafx-app-placeholder'></div> </body> </html> jfx.js ( javascript used on main.html ):updated function javafxEmbed() { dtjava.embed( { url : 'TestIdleCallJavaFx.jnlp', //url: 'Testjfx.jnlp', placeholder: 'javafx-app-placeholder', width: 300, height: 100, jnlp_content: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iVGVzdElkbGVDYWxsSmF2YUZ4LmpubHAiPg0KICA8aW5mb3JtYXRpb24+DQogICAgPHRpdGxlPlRlc3RJZGxlQ2FsbEphdmFGeDwvdGl0bGU+DQogICAgPHZlbmRvcj5NYWhlcjwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5TYW1wbGUgSmF2YUZYIDIuMCBhcHBsaWNhdGlvbi48L2Rlc2NyaXB0aW9uPg0KICAgIDxvZmZsaW5lLWFsbG93ZWQvPg0KICA8L2luZm9ybWF0aW9uPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqZng6amF2YWZ4LXJ1bnRpbWUgdmVyc2lvbj0iMi4yKyIgaHJlZj0iaHR0cDovL2phdmFkbC5zdW4uY29tL3dlYmFwcHMvZG93bmxvYWQvR2V0RmlsZS9qYXZhZngtbGF0ZXN0L3dpbmRvd3MtaTU4Ni9qYXZhZngyLmpubHAiLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxyZXNvdXJjZXM+DQogICAgPGoyc2UgdmVyc2lvbj0iMS42KyIgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9hdXRvZGwvajJzZSIvPg0KICAgIDxqYXIgaHJlZj0iVGVzdElkbGVDYWxsSmF2YUZ4LmphciIgc2l6ZT0iMjE3MTkiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQo8c2VjdXJpdHk+DQogIDxhbGwtcGVybWlzc2lvbnMvPg0KPC9zZWN1cml0eT4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJUZXN0SWRsZUNhbGxKYXZhRngiID4NCiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSIyLjIrIi8+DQogIDwvYXBwbGV0LWRlc2M+DQogIDxqZng6amF2YWZ4LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJvcmcuaW0ub29yLk1haW4iICBuYW1lPSJUZXN0SWRsZUNhbGxKYXZhRngiIC8+DQogIDx1cGRhdGUgY2hlY2s9ImFsd2F5cyIvPg0KPC9qbmxwPg0K' //jnlp_content: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iVGVzdGpmeC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5UZXN0amZ4PC90aXRsZT4NCiAgICA8dmVuZG9yPm1haGVyPC92ZW5kb3I+DQogICAgPGRlc2NyaXB0aW9uPlNhbXBsZSBKYXZhRlggMi4wIGFwcGxpY2F0aW9uLjwvZGVzY3JpcHRpb24+DQogICAgPG9mZmxpbmUtYWxsb3dlZC8+DQogIDwvaW5mb3JtYXRpb24+DQogIDxyZXNvdXJjZXM+DQogICAgPGpmeDpqYXZhZngtcnVudGltZSB2ZXJzaW9uPSIyLjIrIiBocmVmPSJodHRwOi8vamF2YWRsLnN1bi5jb20vd2ViYXBwcy9kb3dubG9hZC9HZXRGaWxlL2phdmFmeC1sYXRlc3Qvd2luZG93cy1pNTg2L2phdmFmeDIuam5scCIvPg0KICA8L3Jlc291cmNlcz4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+DQogICAgPGphciBocmVmPSJUZXN0amZ4LmphciIgc2l6ZT0iMjAyODkiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQo8c2VjdXJpdHk+DQogIDxhbGwtcGVybWlzc2lvbnMvPg0KPC9zZWN1cml0eT4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjEwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJUZXN0amZ4IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iMzAwIiBoZWlnaHQ9IjEwMCIgbWFpbi1jbGFzcz0idGVzdGpmeC5UZXN0amZ4IiAgbmFtZT0iVGVzdGpmeCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo=' }, { javafx: '2.2+' }, {} ); } function launchit(){ dtjava.addOnloadCallback(javafxEmbed); } function callit(aa){ alert(aa); console.log("____ "+aa); var ttt=app.tellme("maher "); console.log("____a "+ttt); } Note that if you build code it may generate different jnlp_content that what I have. so just update it. * I zipped all files into http://ulozto.cz/xV2vrQTd/javafx-dm-ie9-zip * Source code is here : http://247workers.com/JFX_src/TestIdleCallJavaFx.zip Here some steps how to successfully get it work: 1- I am using latest version of JDK/JRE 7u45 2- using Menu File ==> import ==> import from zip 3- Clean And Build 4-copy all content under dist in project into directory work and overwrite any thing if you already have something there. 5- it will be better to show Java Console during deploying via Control Panel ==> Java ==> Advanced ==> under Java console, choose show console. About using < meta http-equiv="X-UA-Compatible" content="IE=8"> to enforce using older rendering engine but this wont be accepted on our enterprise project Im working on. I hope I will get assistance here ... sorry for long post but I wanted to be very specific and provide all necessary info .
This is due to a bug in the Java plugin. As far as I can tell there is no workaround and the bug is still present in Java 8. For some reason in IE9 and IE10 (edge won't load Java at all for me) the toString() method is called on the object you want to expose to the browser. This is evident by using the developer tools to inspect app. I've turned on debug for the browser and plugin (JPI_PLUGIN2_DEBUG=1 and JPI_PLUGIN2_VERBOSE=1) and I'm seeing some differences between IE8 and IE9 mode, but nothing showing me exactly where in the plugin code the object is being transformed to a String. The next course of action is to try and override the plugin with a custom build to see where the problem is actually occurring. However, that may be more trouble than it's worth since it's already been determined the bug is in the plugin and there's no known workaround. In other words, even if a fix was found you probably couldn't deploy a patched version of Java to your enterprise customers. It looks like the only solution is to use a different browser or IE in documentMode 8 or less. I've included some logs for completeness. Note: I changed the names of the jnlp and classes to mirror my environment, but the result is the same. IE9 Console Log NativeLibLoader: resolving loaded C:\Program Files (x86)\Java\jre8\bin\jp2iexp.d ll (Succeeded) IExplorerPlugin.IExplorerPlugin(0x3aaefe8) IExplorerPlugin.IExplorerPlugin(1.8.0) NativeLibLoader: C:\PROGRA~2\Java\jre8\lib\bin\jp2native.dll doesn't exist NativeLibLoader: trying to load C:\PROGRA~2\Java\jre8\bin\jp2native.dll (Succeeded) IExplorerPlugin.addParameters(cAxControl = 0x3aaefe8) IExplorerPlugin.CreateControlWindow(cAxControl = 0x3aaefe8, hWndParent = 0x3071e , hWndControlWindow = 0x1d0348) IExplorerPlugin.SetObjectRects(cAxControl = 0x3aaefe8, left = 8, right = 308, to p = 26, bottom = 126, appletID = null, activated = false) {IExplorerPlugin.InPlaceActivate(cAxControl = 0x3aaefe8) entered }IExplorerPlugin.InPlaceActivate(cAxControl = 0x3aaefe8) exited IExplorerPlugin.SetObjectRects(cAxControl = 0x3aaefe8, left = 8, right = 308, to p = 26, bottom = 126, appletID = null, activated = true) Attempting to start applet 1 JavaFX runtime found. 1) JavaFX 8.0.0 found at C:\PROGRA~2\Java\jre8\ JVMLauncher.start: launcher params: <-Djnlp.fx=8.0.0> <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGRA~2\Java \jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar> <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes> <---> <--> <sun.plugin2.main.client.PluginMain> <read_pipe_name=jpi2_pid2136_pipe2,write_pipe_name=jpi2_pid2136_pipe3> JVMLauncher.start(): now - user.startApplet(): 14520 us JVMLauncher.processArg[0]: C:\Program Files (x86)\Java\jre8\bin\jp2launcher.exe JVMLauncher.processArg[1]: -D__jvm_launched=22791732422 JVMLauncher.processArg[2]: -D__applet_launched=22791717902 JVMLauncher.processArg[3]: -Djnlp.fx=8.0.0 JVMLauncher.processArg[4]: sun.plugin2.main.client.PluginMain JVMLauncher.processArg[5]: read_pipe_name=jpi2_pid2136_pipe2,write_pipe_name=jpi 2_pid2136_pipe3 JVMLauncher.processArgs total len: 234, custArgsMaxLen: 8044 JVMLauncher.afterStart(): starting JVM process watcher JVMInstance.start: JVMID original params array: [0][0]: <-Djnlp.fx=8.0.0> [0][1]: <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGR A~2\Java\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar> [0][2]: <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes> [4][0]: <null> JVMInstance for 1.8.0.ea sending start applet message isRelaunch: false appletLaunchTime: 22791717902 Parameters: jnlp_href=Main.jnlp launchjnlp= code=dummy.class java_status_events=true type=application/x-java-applet separate_jvm=true javafx_version=2.2+ javafx_applet_id=dtjava-app-1 codebase=http://172.16.218.1/ width=300 name=dtjava-app-1 id=dtjava-app-1 scriptable=true height=100 JVMInstance.registerApplet for applet ID 1, plugin sun.plugin2.main.server.IExpl orerPlugin#44dec8 Received applet ID [AppletID 1] JVMInstance (1.8.0.ea) processing GetProxyMessage Delegate to plugin instance on browser main thread. Browser main thread handle GetProxyMessage. JVMInstance (1.8.0.ea) processing GetProxyMessage Delegate to plugin instance on browser main thread. Browser main thread handle GetProxyMessage. JVMInstance (1.8.0.ea) processing CookieOpMessage JVMInstance (1.8.0.ea) processing CookieOpMessage JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage LiveConnectSupport: retained [BrowserSideObject 0x3ecd730] for applet 1 JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage JVMInstance (1.8.0.ea) processing JavaScriptEvalMessage JVMInstance (1.8.0.ea) processing JavaScriptMemberOpMessage LiveConnectSupport.sendRemoteJavaObjectOp: CALL_METHOD "toString" AbstractPlugin.doJavaObjectOp starting to wait for result ID 1 JVMInstance (1.8.0.ea) processing JavaReplyMessage JVMInstance received JavaReplyMessage with result ID 1 AbstractPlugin.doJavaObjectOp ending wait for result ID 1 LiveConnectSupport: result [ResultID 1] = JavaApplicationCallBack Test JVMInstance for 1.8.0.ea sending release remote object message for ID 1 JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage LiveConnectSupport: schedule release [BrowserSideObject 0x3ecd730] for applet 1 IE8 Console Log NativeLibLoader: resolving loaded C:\Program Files (x86)\Java\jre8\bin\jp2iexp.d ll (Succeeded) IExplorerPlugin.IExplorerPlugin(0x4c1efe8) IExplorerPlugin.IExplorerPlugin(1.8.0) NativeLibLoader: C:\PROGRA~2\Java\jre8\lib\bin\jp2native.dll doesn't exist NativeLibLoader: trying to load C:\PROGRA~2\Java\jre8\bin\jp2native.dll (Succeeded) IExplorerPlugin.addParameters(cAxControl = 0x4c1efe8) IExplorerPlugin.CreateControlWindow(cAxControl = 0x4c1efe8, hWndParent = 0xd04b4 , hWndControlWindow = 0x1a030a) IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = -9990, right = -96 90, top = 28, bottom = 128, appletID = null, activated = false) {IExplorerPlugin.InPlaceActivate(cAxControl = 0x4c1efe8) entered }IExplorerPlugin.InPlaceActivate(cAxControl = 0x4c1efe8) exited IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = -9990, right = -96 90, top = 28, bottom = 128, appletID = null, activated = true) Attempting to start applet 1 JavaFX runtime found. 1) JavaFX 8.0.0 found at C:\PROGRA~2\Java\jre8\ JVMLauncher.start: launcher params: <-Djnlp.fx=8.0.0> <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGRA~2\Java \jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar> <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes> <---> <--> <sun.plugin2.main.client.PluginMain> <read_pipe_name=jpi2_pid2740_pipe2,write_pipe_name=jpi2_pid2740_pipe3> JVMLauncher.start(): now - user.startApplet(): 12763 us JVMLauncher.processArg[0]: C:\Program Files (x86)\Java\jre8\bin\jp2launcher.exe JVMLauncher.processArg[1]: -D__jvm_launched=25562522742 JVMLauncher.processArg[2]: -D__applet_launched=25562509979 JVMLauncher.processArg[3]: -Djnlp.fx=8.0.0 JVMLauncher.processArg[4]: sun.plugin2.main.client.PluginMain JVMLauncher.processArg[5]: read_pipe_name=jpi2_pid2740_pipe2,write_pipe_name=jpi 2_pid2740_pipe3 JVMLauncher.processArgs total len: 234, custArgsMaxLen: 8044 JVMLauncher.afterStart(): starting JVM process watcher JVMInstance.start: JVMID original params array: [0][0]: <-Djnlp.fx=8.0.0> [0][1]: <-Xbootclasspath/a:C:\PROGRA~2\Java\jre8\lib\deploy.jar;C:\PROGR A~2\Java\jre8\lib\javaws.jar;C:\PROGRA~2\Java\jre8\lib\plugin.jar> [0][2]: <-Djava.class.path=C:\PROGRA~2\Java\jre8\classes> [4][0]: <null> JVMInstance for 1.8.0.ea sending start applet message isRelaunch: false appletLaunchTime: 25562509979 Parameters: jnlp_href=Main.jnlp launchjnlp= code=dummy.class java_status_events=true type=application/x-java-applet separate_jvm=true javafx_version=2.2+ javafx_applet_id=dtjava-app-1 codebase=http://172.16.218.1/ width=300 name=dtjava-app-1 id=dtjava-app-1 scriptable=true height=100 JVMInstance.registerApplet for applet ID 1, plugin sun.plugin2.main.server.IExpl orerPlugin#66906f Received applet ID [AppletID 1] JVMInstance (1.8.0.ea) processing GetProxyMessage Delegate to plugin instance on browser main thread. Browser main thread handle GetProxyMessage. JVMInstance (1.8.0.ea) processing GetProxyMessage Delegate to plugin instance on browser main thread. Browser main thread handle GetProxyMessage. JVMInstance (1.8.0.ea) processing CookieOpMessage JVMInstance (1.8.0.ea) processing CookieOpMessage JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage LiveConnectSupport: retained [BrowserSideObject 0x397ca24] for applet 1 JVMInstance (1.8.0.ea) processing StartAppletAckMessage with: appletID: 1 JVMInstance (1.8.0.ea) processing JavaScriptGetWindowMessage JVMInstance (1.8.0.ea) processing JavaScriptEvalMessage JVMInstance (1.8.0.ea) processing JavaScriptMemberOpMessage IExplorerPlugin.SetObjectRects(cAxControl = 0x4c1efe8, left = 10, right = 310, t op = 28, bottom = 128, appletID = [AppletID 1], activated = true) JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage JVMInstance (1.8.0.ea) processing JavaScriptReleaseObjectMessage LiveConnectSupport: schedule release [BrowserSideObject 0x397ca24] for applet 1 Stacktrace of toString() being called in IE9 at Main$JavaAplicationCallBack.toString(Main.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.plugin.javascript.Trampoline.invoke(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source) at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source) at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source) at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source) at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source) at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source) at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source) at sun.plugin2.main.client.LiveConnectSupport.doObjectOp(Unknown Source) at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source) at sun.plugin2.main.client.MessagePassingJSObject.doMemberOp(Unknown Source) at sun.plugin2.main.client.MessagePassingJSObject.setMember(Unknown Source) at Main.publishServices(Main.java:55) at Main.start(Main.java:38) at com.sun.javafx.applet.FXApplet2$2.run(Unknown Source) at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source) at com.sun.javafx.application.PlatformImpl$6$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl$6.run(Unknown Source) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(Unknown Source) at com.sun.glass.ui.win.WinApplication$4$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source)