Ich versuche, von WSO2 Carbon 3.0.0 auf Carbon 4.0.3 zu aktualisieren. Mit Carbon 3.0.0 kann ich nach der Installation der notwendigen Funktionen JavaScript Mashup-Dienste schreiben, die externe Java-Bibliotheken aufrufen können - und da WSO2 Carbon Rhino verwendet, kann ich importPackage verwenden. Ich war nicht in der Lage, die gleiche Funktionalität auf Carbon 4.0.3 zu bekommen.
Die Vorgehensweise, die ich befolgt habe, ist:
Mein Test-Mashup-Service (TestMashup.js):
%Vor%Ich habe diesen Mashup-Dienst in CARBON_HOME / repository / deployment / server / jservices / admin /
installiertWenn ich diesen Vorgang auf Carbon 3.0.0 ausführe, erhalte ich folgende Antwort:
%Vor%Wenn ich versuche, diese Operation auf Carbon 4.0.3 auszuführen, erhalte ich folgende Stack-Trace:
%Vor%Wie behebe ich das Problem, damit ich weiterhin Java-Bibliotheken aus meinen JavaScript Mashup-Diensten verwenden kann?
Der Code, mit dem diese Funktion funktioniert, wurde deaktiviert.
Ich habe einige Zeit damit verbracht, das Carbon SVN-Repository durchzusehen und festgestellt, dass die% mashup-Komponente message-receiver
so geändert wurde, dass verhindert wird, dass JavaScript Mashup-Services mit einem ImporterTopLevel
-Kontext erstellt werden. Dies ist direkt in org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptEngine
sichtbar, wobei frühere Versionen ImporterTopLevel
erweitern, neuere Versionen jedoch nicht. Für zukünftige Referenz wurde diese Änderung gegen Revision 129254 festgeschrieben.
Ich konnte den Code ImporterTopLevel
von 3.2.2 in die Version 4.0.3 von messagereceiver
zusammenführen, um das Problem zu umgehen.
Wenn Sie erforderliche Funktionen auf dem Carbon Server installieren, prüfen Sie, ob in der Konsole Fehler angezeigt werden. Es kann zu Abhängigkeitsproblemen kommen. Nachdem Sie die Features installiert haben, starten Sie den WSO2 AS mit dem Befehl ./wso2server.sh -DosgiConsole
und überprüfen Sie mit dem Befehl ss
und comp
, ob nicht aufgelöste OSGi-Abhängigkeiten vorhanden sind. Wenn dies der Fall ist, versuchen Sie, die erforderlichen Bundles in Repository / Komponenten / Drop-Ins einzulegen und den Server neu zu starten.
Und ich bin mir auch nicht sicher, ob nur die Installation der Application Server-Funktion Ihre Mashup-Anforderungen aktiviert. Prüfen Sie daher in diesem Repository, ob für Mashup Server relevante Funktionen verfügbar sind. Wenn ja, installieren Sie sie auch. Es scheint auf Ihrem Server, Host-Objekt "Pakete", hat ein Problem.
Wenn Sie einige Funktionen aufgrund von Abhängigkeitsproblemen nicht installieren können, können Sie versuchen, die erforderlichen Bundles im Drop-in-Verzeichnis zu speichern. Wenn dies ebenfalls fehlschlägt, müssen Sie möglicherweise den Code für diese Komponente auschecken und ihn auf Ihre Serverversion zurückportieren.
Tags und Links rhino wso2 wso2carbon