les scripts en java - javascript à partir d'un fichier de classe côté serveur en Java 1.5
-
13-09-2019 - |
Question
J'ai trois types de get demandes qui sont livrés à un fichier class sur l'application Web à partir d'un appareil mobile. Parce que l'appareil mobile fournit pas de cookies, le fichier journal frappé seulement a
in.ter.nal.ip ser.ver.i.p:port 2009-06-05 09:14:44 GET /applicationname/mobiledevicexml reqtype=login&userid=xx### 200 87 - MercuryMobile/1.0 CFNetwork/342.1 Darwin/9.4.1 cookieArrayLength=0;
Si je peux instancier javascript dans mon fichier de classe, et de générer un appel de fonction javascript urchinTracker () à l'intérieur du fichier de classe, je peux le remplacer cookieArrayLength = 0 inutile; avec quelques oursin de données utiles peut lire à partir du fichier journal dans les rapports d'analyse. Nous avons cherché à scripts en Java avec Rhino ; Safari Bookshelf a:
Scripting dans JavaTM: Langues, Cadres et modèles
qui nous ont aidés démo tout de suite que nous pouvons exécuter javascript dans des fichiers de classe --Ce fonctionne hors-the-box sur Java 6.
Quelqu'un sait des ressources pour les scripts avec Rhino sur Java 1.5 ou 1.4?
Alternativement, des suggestions pour l'exécution de JavaScript de Java 1.5 serait apprécié.
La solution
[J'affichage dans une réponse, parce que je n'ai pas assez de points pour faire un commentaire sur la question elle-même.]
Êtes-vous sûr que la fonction urchinTracker () fonctionnera en dehors d'un navigateur Web? Exécution de l'interpréteur JavaScript Rhino (qui est pas trop difficile) ne sera pas suffisant si la fonction repose sur divers objets du navigateur, comme le modèle objet de document (DOM) ou XMLHttpRequest.
Je vous suggère au moins numériser les éléments internes de la fonction urchinTracker () pour voir si tel est le cas.
Autres conseils
Le API Java script ( javax.scripting
) package a été introduit en Java 6, de sorte que ne sera pas disponible en Java 1.4 ou 5. Comme l'installation par défaut, Java sE 6 est livré avec une version dépouillée de Rhino Mozilla qui est interfacé par javax.scripting
.
Cependant, Mozilla Rhino lui-même ne nécessite pas Java 6. Dans la page des exigences:
Les versions récentes de Rhino ont seulement été testé avec JDK 1.4 et plus. Les anciennes versions prennent en charge le plus tôt JDKs comme 1.1.
Par conséquent, utiliser Rhino, il semble que Java 1.4 est en fait suffisante.
En ce qui concerne les ressources, les Rhino semble avoir beaucoup d'informations. En particulier, la section Embedding Rhino pourrait être utile de voir comment le script fonctionne.
Bien sûr, l'absence du paquet javax.scripting
signifie que l'interface de Rhino lui-même va nécessiter l'utilisation de l'API Rhino plutôt que Java 6 API de script natif, mais je suppose que la fonctionnalité va être assez similaire . Le seul inconvénient que je vois est, si à l'avenir, Java 6 va être pris en charge sur la plate-forme cible et / ou en utilisant une autre langue, il peut nécessiter une ré-écriture d'utiliser l'API Java script plutôt que Rhino supportant directement.
JavaScript côté serveur pour la liste des projets qui exécute JavaScript au niveau du serveur -side.
Pour votre utilisation, en utilisant Rhino semble que le chemin à parcourir.