2013-02-12 7 views
8

Próbuję dokonać aktualizacji z wersji WSO2 Carbon 3.0.0 do wersji Carbon 4.0.3. Korzystając z Carbon 3.0.0, po zainstalowaniu niezbędnych funkcji, jestem w stanie napisać usługi JavaScript Mashup, które mogą wywoływać zewnętrzne biblioteki Java - a ponieważ WSO2 Carbon używa Rhino, mogę użyć importPackage. Nie byłem w stanie uzyskać tej samej funkcjonalności w wersji Carbon 4.0.3.Jak rozwiązać problem "Pakiety nie zostały zdefiniowane" w dokumencie WSO2 Carbon 4.0.3 z funkcjami serwera aplikacji?

Procedura Mam następnie jest:

  1. Pobierz i rozpakuj WSO2 Carbon 4.0.3
  2. start Carbon
  3. Przejdź do strony "Zarządzanie Feature"
  4. Dodaj 4.0.3 Repozytorium Carbon p2 (http://dist.wso2.org/p2/carbon/releases/4.0.3/)
  5. Wyszukaj i zainstaluj funkcję "Serwer aplikacji"
  6. Ponownie uruchom węgiel
  7. Wdróż moją usługę Mashup próbny
  8. Wykonaj operację echa mojej usługi Mashup testowej za pomocą narzędzia "tryit".

Moje usługi Test Mashup (TestMashup.js):

this.serviceName = "TestMashup"; 

echo.inputTypes = "#raw"; 
echo.outputType = "#raw"; 
function echo(parameter) { 
    var javaDate = new Packages.java.util.Date(); 
    var response = "<echo><value>" + parameter.toXMLString() + "</value><timestamp>" + javaDate.getTime() + "</timestamp></echo>"; 

    return new XML(response); 
} 

mam zainstalowane tę usługę Mashup do CARBON_HOME/repozytorium/wdrożenia/server/jsservices/admin/

Kiedy biegnę ta operacja na Carbon 3.0.0, otrzymuję następującą odpowiedź:

<echo> 
    <value> 
    <r>test</r> 
    </value> 
    <timestamp>1360699125311</timestamp> 
</echo> 

Kiedy próbuję uruchomić tę operację na Carbon 4.0.3, otrzymuję następujący ślad stosu:

[2013-02-12 14:46:32,511] ERROR {org.jaggeryjs.scriptengine.engine.RhinoEngine} - org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined.(//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
[2013-02-12 14:46:32,512] ERROR {org.jaggeryjs.scriptengine.engine.RhinoEngine} - org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined. (//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
[2013-02-12 14:46:32,512] ERROR {org.apache.axis2.receivers.AbstractMessageReceiver} - org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined. (//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
org.apache.axis2.AxisFault: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined.(//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
     at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) 
     at org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptEngine.call(JavaScriptEngine.java:176) 
     at org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptEngine.call(JavaScriptEngine.java:208) 
     at org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptReceiver.invokeBusinessLogic(JavaScriptReceiver.java:185) 
     at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) 
     at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) 
     at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) 
     at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) 
     at org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56) 
     at org.wso2.carbon.mashup.jsservices.custom.ui.CustomUIServletFilter.doFilter(CustomUIServletFilter.java:233) 
     at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37) 
     at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) 
     at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) 
     at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
     at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172) 
     at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
     at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined. (//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
     at org.jaggeryjs.scriptengine.engine.RhinoEngine.execFunc(RhinoEngine.java:383) 
     at org.jaggeryjs.scriptengine.engine.RhinoEngine.call(RhinoEngine.java:251) 
     at org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptEngine.call(JavaScriptEngine.java:169) 
     ... 40 more 
Caused by: org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined. (//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
     at org.jaggeryjs.scriptengine.engine.RhinoEngine.execFunc(RhinoEngine.java:401) 
     at org.jaggeryjs.scriptengine.engine.RhinoEngine.execFunc(RhinoEngine.java:380) 
     ... 42 more 
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "Packages" is not defined. (//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js#6) 
     at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3557) 
     at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3535) 
     at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3620) 
     at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1652) 
     at org.jaggeryjs.rhino.c0._c1(//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js:6) 
     at org.jaggeryjs.rhino.c0.call(//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js) 
     at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401) 
     at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003) 
     at org.jaggeryjs.rhino.c0.call(//C:\WSO2CA~1\WSO2CA~1.3\bin\..\repository\deployment\server\jsservices\admin\TestMashup.js) 
     at org.jaggeryjs.scriptengine.engine.RhinoEngine.execFunc(RhinoEngine.java:398) 
     ... 43 more 

Jak mogę to naprawić, aby móc nadal korzystać z bibliotek Java z moich usług JavaScript Mashup?

Odpowiedz

1

Kod, który zezwolił na działanie tej funkcji, został wyłączony.

Spędziłem trochę czasu przeglądając repozytorium SVN węgla i odkryłem, że komponent mashup message-receiver został zmodyfikowany w taki sposób, że zapobiega tworzeniu stron JavaScript Mashup w kontekście ImporterTopLevel. Jest to bezpośrednio widoczne w org.wso2.carbon.mashup.javascript.messagereceiver.JavaScriptEngine, gdzie poprzednie wersje rozszerzają się o ImporterTopLevel, ale nowsze wersje nie. W celu późniejszego wykorzystania ta zmiana została zatwierdzona w wersji 129254.

Udało mi się scalić kod ImporterTopLevel z wersji 3.2.2 do wersji 4.0.3 w wersji messagereceiver w celu obejścia problemu.

-1

Po zainstalowaniu wymaganych funkcji na serwerze Carbon sprawdź, czy w konsoli są jakieś błędy. Mogą występować pewne problemy z zależnościami. Po zainstalowaniu tych funkcji uruchom WSO2 AS poleceniem ./wso2server.sh -DosgiConsole i użyj polecenia ss i comp, aby sprawdzić, czy istnieją nierozwiązane zależności OSGi. Jeśli są, spróbuj umieścić wymagane pakiety w repozytorium/komponentach/dropins i zrestartuj serwer.

Ponadto nie jestem pewien, czy tylko instalacja funkcji serwera aplikacji umożliwi spełnienie wymagań Mashup. Dlatego w tym repozytorium sprawdź, czy są dostępne funkcje powiązane z serwerem Mashup. Jeśli tak, zainstaluj je również. Wydaje się, że na twoim serwerze obiekt hosta "Pakiety" ma pewien problem.

Jeśli nie uda się zainstalować niektórych funkcji z powodu problemów z zależnościami, możesz spróbować umieścić wymagane pakiety w katalogu dropins. A jeśli to również się nie powiedzie, będziesz musiał sprawdzić kod związany z tym komponentem i przenieść go do wersji serwerowej.

+0

SS pokazuje wszystkie moduły jako ZAINSTALOWANE, AKTYWNE lub ROZWIĄZYWANE. Czy jest coś konkretnego, czego szukam? Tak naprawdę nie widzę żadnych cech tej tożsamości "Serwer Mashup"; rozumiem, że serwer Mashup jest wbudowany w serwer aplikacji. Co należy zainstalować, aby uzyskać tę funkcjonalność? – GamerJosh

+0

Zobacz dokumenty OSGi w Internecie dla poleceń OSGi. Używając diag [id_showed_in_ss_command] możesz sprawdzić, czy są jakieś problemy z każdym elementem wyświetlanym w poleceniu ss. Jeśli nie ma funkcji podobnej do Mashup Server, sprawdź, czy istnieją jakieś funkcje o nazwach takich jak Host Object. Serwer AFAIK Mashup jest zapakowany z serwerem aplikacji dopiero po porzuceniu serwera Mashup. Wcześniej istniał oddzielny serwer o nazwie Mashup Server. – Maninda

+0

Maninda - czy możesz przynajmniej potwierdzić, że to działa dla ciebie? A może ma nadal działać? –

Powiązane problemy