2016-05-11 5 views
0

Wir implementieren eine Lösung, in der wir unser WSO2 DSS verwenden. Wir wollen es nicht loswerden, da viele Akteure in unserer Organisation ihre exponierten Schnittstellen nutzen. Darunter planen wir die Migration zu Cassandra oder DynamoDB, die alle auf AWS implementiert sind. Wir stehen vor einem Blockierungsproblem, da wir eine Verbindung herstellen können. Wir sind gezwungen, das Amazon SDK zu verwenden, in dem wir eine Version der joda-time-Bibliothek verwenden müssen, die neuer als v.2 ist. Wenn wir versuchen, einen Artikel zu retrieven, haben wir die nächste Ausnahme.WSO2 DSS - Cassandra/DynamoDb - Artikel abrufen

Wir vermuten, dass WSO2 eine andere Version dieser Bibliothek verwendet.


WSO2 v.3.2.1
joda Zeit v.2.8.1

Dank.

+0

Soweit ich weiß, verwenden wir Joda Time im wso2 Data Services Server nicht. –

Antwort

0

Ich habe das gleiche Problem, aber ich habe einige Tests gemacht und ich denke, es ist nicht wirklich ein joda-Zeit-Bibliothek-Problem.

Ich habe ein zusammengebautes Glas mit allen Abhängigkeiten zusammengestellt und es funktioniert, mindestens einmal.

Auf pom.xml Datei Konfiguration:

<build> 
    <plugins> 
     ... 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

und übersetzen Sie das Glas mit:

mvn assembly:assembly 

Ich kopierte das Glas auf $ WSO_INSTALATION_DIR/repository/components/lib und Start der wso2 server und es funktioniert!

Aber jetzt habe ich Probleme, den Code meiner Datenquelle zu ändern und neu zu implementieren.

Wenn ich kopieren wieder die .jar auf lib gibt es nicht meine letzten Änderungen an Datenquelle den Code, und wenn ich das Glas aus lib löschen/ und dropin/ Ordner ich die folgende Fehlermeldung erhalten:

java.lang.ClassCastException: org.wso2.dss.connectors.dynamodb.DynamoDBDataSource cannot be cast to org.wso2.carbon.dataservices.core.custom.datasource.CustomQueryBasedDS 

    at org.wso2.carbon.dataservices.core.description.config.InlineCustomQueryBasedDSConfig.<init>(InlineCustomQueryBasedDSConfig.java:66) 
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getCustomQueryConfig(ConfigFactory.java:143) 
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.createConfig(ConfigFactory.java:73) 
    at org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:137) 
    at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:764) 
    at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1127) 
    at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:178) 
    at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) 
    at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807) 
    at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) 
    at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) 
    at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) 
    at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:135) 
    at org.wso2.carbon.core.CarbonAxisConfigurator.loadServices(CarbonAxisConfigurator.java:464) 
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:95) 
    at org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfigurationContextFactory.java:65) 
    at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:398) 
    at org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219) 
    at org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347) 
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) 
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) 
    at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343) 
    at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 
    at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 
    at org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81) 
    at org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60) 
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40) 
    at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1267) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassCastException: org.wso2.dss.connectors.dynamodb.DynamoDBDataSource cannot be cast to org.wso2.carbon.dataservices.core.custom.datasource.CustomQueryBasedDS 
    at org.wso2.carbon.dataservices.core.description.config.InlineCustomQueryBasedDSConfig.<init>(InlineCustomQueryBasedDSConfig.java:48) 
    ... 54 more 

Ich hoffe, dass dieser Tipp Ihnen helfen kann, dieses Problem zu lösen, und ich werde weiterhin versuchen, eine vollständige Lösung zu finden.

EDITED: Ich habe festgestellt, dass es funktioniert, wenn Sie die beiden Gläser auf lib Verzeichnis, das zusammengebaute Glas und die keine Abhängigkeiten jar kopieren.

Verwandte Themen