Как использовать лазурь в Apache Camel? - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь использовать Azure-Blob для загрузки или получения BLOB-файла из облака. На данный момент маршрут успешно запущен, но ожидаемый BLOB-файл не загружен, и Java-программа немедленно завершается. Подскажите, пожалуйста, как получить нужный файл BLOB-объекта, используя azure-blob .

Ниже приведен код, используемый для получения данных BLOB-объектов из облака с использованием Azure-BLOB-объектов

import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
import com.microsoft.azure.storage.StorageUri;
import com.microsoft.azure.storage.blob.CloudBlockBlob;

public class RouteComposer {
    public static void main(String[] args) {
        try {
            StorageCredentials credentials = new StorageCredentialsAccountAndKey("abcdefgh",
                    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==");
            StorageUri storageURI = new StorageUri(new java.net.URI("https://abcdefgh.blob.core.windows.net/abcdefgh"));
            CloudBlockBlob client = new CloudBlockBlob(storageURI, credentials);
            SimpleRegistry myregistry = new SimpleRegistry();
            CamelContext mycontext = new DefaultCamelContext(myregistry);
            myregistry.put("clientreg", client);
            mycontext.setStreamCaching(true);
            mycontext.addRoutes(new RouteBuilder() {
                @Override
                public void configure() {
                    from("azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=#clientreg&operation=getBlob")
                            .log("cloud blob transfer started").to("file:c://output").log("cloud blob transfer completed");
                }
            });
            mycontext.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

. Пожалуйста, найдите ниже журналы, которые я получаю, когда я работаю над Java-программой

14:09:47.011 [Camel Thread #0 - LRUCacheFactory] DEBUG org.apache.camel.util.LRUCacheFactory - Warming up LRUCache ...
14:09:47.111 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Adding routes from builder: Routes: []
14:09:47.096 [Camel Thread #0 - LRUCacheFactory] DEBUG org.apache.camel.util.LRUCacheFactory - Warming up LRUCache complete in 85 millis
14:09:47.520 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.21.0.fuse-740039-redhat-00001 (CamelContext: camel-1) is starting
14:09:47.520 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Using ClassResolver=org.apache.camel.impl.DefaultClassResolver@2f943d71, PackageScanClassResolver=org.apache.camel.impl.DefaultPackageScanClassResolver@80503, ApplicationContextClassLoader=null, RouteController=org.apache.camel.impl.DefaultRouteController@4b553d26
14:09:47.520 [main] INFO org.apache.camel.impl.DefaultCamelContext - StreamCaching is enabled on CamelContext: camel-1
14:09:47.520 [main] INFO org.apache.camel.management.ManagedManagementStrategy - JMX is enabled
14:09:47.676 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Starting JMX agent on server: com.sun.jmx.mbeanserver.JmxMBeanServer@2353b3e6
14:09:47.895 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=context,name="camel-1"
14:09:47.895 [main] DEBUG org.apache.camel.support.TimerListenerManager - Added TimerListener: org.apache.camel.management.mbean.ManagedCamelContext@44a664f2
14:09:47.895 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=health,name="camel-1"
14:09:47.895 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=routecontrollers,name="camel-1"
14:09:47.988 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultTypeConverter
14:09:48.020 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Found 3 packages with 19 @Converter classes to load
14:09:48.098 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve list of packages, from url: jar:file:/C:/Users/schintha/.m2/repository/org/apache/camel/camel-core/2.21.0.fuse-740039-redhat-00001/camel-core-2.21.0.fuse-740039-redhat-00001.jar!/META-INF/services/org/apache/camel/TypeConverter
14:09:48.108 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve list of packages, from url: jar:file:/C:/Users/schintha/.m2/repository/org/apache/camel/camel-spring/2.21.0.fuse-740039-redhat-00001/camel-spring-2.21.0.fuse-740039-redhat-00001.jar!/META-INF/services/org/apache/camel/TypeConverter
14:09:48.109 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve list of packages, from url: jar:file:/C:/Users/schintha/.m2/repository/org/apache/camel/camel-netty4/2.21.0.fuse-740039-redhat-00001/camel-netty4-2.21.0.fuse-740039-redhat-00001.jar!/META-INF/services/org/apache/camel/TypeConverter
14:09:48.110 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve list of packages, from url: jar:file:/C:/Users/schintha/.m2/repository/org/apache/camel/camel-netty4-http/2.21.0.fuse-740039-redhat-00001/camel-netty4-http-2.21.0.fuse-740039-redhat-00001.jar!/META-INF/services/org/apache/camel/TypeConverter
14:09:48.110 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve list of packages, from url: jar:file:/C:/Users/schintha/.m2/repository/org/apache/camel/camel-http-common/2.21.0.fuse-740039-redhat-00001/camel-http-common-2.21.0.fuse-740039-redhat-00001.jar!/META-INF/services/org/apache/camel/TypeConverter
14:09:48.110 [main] DEBUG org.apache.camel.impl.converter.AnnotationTypeConverterLoader - Loaded 4 @Converter classes
14:09:48.126 [main] INFO org.apache.camel.impl.converter.DefaultTypeConverter - Type converters loaded (core: 194, classpath: 21)
14:09:48.126 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Language with name simple in registry. Found: null
14:09:48.126 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Language with name simple-language in registry. Found: null
14:09:48.141 [main] DEBUG org.apache.camel.language.simple.SimpleLanguage - Simple language predicate/expression cache size: 1000
14:09:48.173 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultEndpointRegistry
14:09:48.173 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultExecutorServiceManager
14:09:48.173 [main] DEBUG org.apache.camel.impl.SharedProducerServicePool - Starting service pool: org.apache.camel.impl.SharedProducerServicePool@6379eb
14:09:48.173 [main] DEBUG org.apache.camel.impl.SharedPollingConsumerServicePool - Starting service pool: org.apache.camel.impl.SharedPollingConsumerServicePool@294425a7
14:09:48.188 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultInflightRepository
14:09:48.220 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultAsyncProcessorAwaitManager
14:09:48.220 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultShutdownStrategy
14:09:48.235 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultRestRegistry
14:09:48.235 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultRuntimeCamelCatalog
14:09:48.266 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultTransformerRegistry
14:09:48.266 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultValidatorRegistry
14:09:48.313 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Using ComponentResolver: org.apache.camel.impl.DefaultComponentResolver@515c6049 to resolve component with name: azure-blob
14:09:48.313 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Component with name azure-blob in registry. Found: null
14:09:48.313 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Component with name azure-blob-component in registry. Found: null
14:09:48.313 [main] DEBUG org.apache.camel.impl.DefaultComponentResolver - Found component: azure-blob via type: org.apache.camel.component.azure.blob.BlobServiceComponent via: META-INF/services/org/apache/camel/component/azure-blob
14:09:48.360 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=components,name="azure-blob"
14:09:48.360 [main] DEBUG org.apache.camel.impl.DefaultComponent - Cannot resolve property placeholders on component: org.apache.camel.component.azure.blob.BlobServiceComponent@702657cc as PropertiesComponent is not in use
14:09:48.360 [main] DEBUG org.apache.camel.impl.DefaultComponent - Creating endpoint uri=[azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob], path=[abcdefgh/abcdefgh/test.rpm]
14:09:48.438 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob converted to endpoint: azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob by component: org.apache.camel.component.azure.blob.BlobServiceComponent@702657cc
14:09:48.470 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=endpoints,name="azure-blob://abcdefgh/abcdefgh/test.rpm\?azureBlobClient=%23clientreg&operation=getBlob"
14:09:48.579 [main] DEBUG org.apache.camel.model.LogDefinition - LogName is not configured, using route id as logName: route1
14:09:48.595 [main] DEBUG org.apache.camel.processor.interceptor.DefaultChannel - Initialize channel for target: 'Log[cloud blob transfer started]'
14:09:48.595 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=tracer,name=BacklogTracer
14:09:48.641 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=tracer,name=BacklogDebugger
14:09:48.688 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=errorhandlers,name="DefaultErrorHandlerBuilder(ref:CamelDefaultErrorHandlerBuilder)"
14:09:48.720 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Using ComponentResolver: org.apache.camel.impl.DefaultComponentResolver@515c6049 to resolve component with name: file
14:09:48.720 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Component with name file in registry. Found: null
14:09:48.720 [main] DEBUG org.apache.camel.util.ResolverHelper - Lookup Component with name file-component in registry. Found: null
14:09:48.720 [main] DEBUG org.apache.camel.impl.DefaultComponentResolver - Found component: file via type: org.apache.camel.component.file.FileComponent via: META-INF/services/org/apache/camel/component/file
14:09:48.735 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=components,name="file"
14:09:48.735 [main] DEBUG org.apache.camel.impl.DefaultComponent - Cannot resolve property placeholders on component: org.apache.camel.component.file.FileComponent@55740540 as PropertiesComponent is not in use
14:09:48.751 [main] DEBUG org.apache.camel.impl.DefaultComponent - Creating endpoint uri=[file://c://output], path=[c://output]
14:09:48.766 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - file://c://output converted to endpoint: file://c://output by component: org.apache.camel.component.file.FileComponent@55740540
14:09:48.798 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=endpoints,name="file://c://output"
14:09:48.798 [main] DEBUG org.apache.camel.processor.interceptor.DefaultChannel - Initialize channel for target: 'To[file:c://output]'
14:09:48.798 [main] DEBUG org.apache.camel.model.LogDefinition - LogName is not configured, using route id as logName: route1
14:09:48.798 [main] DEBUG org.apache.camel.processor.interceptor.DefaultChannel - Initialize channel for target: 'Log[cloud blob transfer completed]'
14:09:48.829 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=services,name=DefaultStreamCachingStrategy
14:09:49.016 [main] DEBUG org.apache.camel.impl.DefaultStreamCachingStrategy - Created spool directory: C:\Users\schintha\AppData\Local\Temp\camel\camel-tmp-9344d944-e28b-49be-8c93-1368a22fd822
14:09:49.016 [main] DEBUG org.apache.camel.impl.DefaultStreamCachingStrategy - StreamCaching configuration DefaultStreamCachingStrategy[spoolDirectory=C:\Users\schintha\AppData\Local\Temp\camel\camel-tmp-9344d944-e28b-49be-8c93-1368a22fd822, spoolChiper=null, spoolThreshold=131072, spoolUsedHeapMemoryThreshold=0, bufferSize=4096, anySpoolRules=false]
14:09:49.032 [main] INFO org.apache.camel.impl.DefaultStreamCachingStrategy - StreamCaching in use with spool directory: C:\Users\schintha\AppData\Local\Temp\camel\camel-tmp-9344d944-e28b-49be-8c93-1368a22fd822 and rules: [Spool > 128K body size]
14:09:49.032 [main] DEBUG org.apache.camel.impl.HeadersMapFactoryResolver - Creating default HeadersMapFactory
14:09:49.032 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Using HeadersMapFactory: org.apache.camel.impl.DefaultHeadersMapFactory@c333c60
14:09:49.032 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Warming up route id: route1 having autoStartup=true
14:09:49.032 [main] DEBUG org.apache.camel.impl.RouteService - Starting services on route: route1
14:09:49.032 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Pipeline[[Channel[Log(route1)[cloud blob transfer started]], Channel[sendTo(file://c://output)], Channel[Log(route1)[cloud blob transfer completed]]]]
14:09:49.048 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=producers,name=GenericFileProducer(0x27ff5d15)
14:09:49.048 [main] DEBUG org.apache.camel.impl.ProducerCache - Adding to producer cache with key: file://c://output for producer: Producer[file://c://output]
14:09:49.048 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Pipeline[[Channel[Log(route1)[cloud blob transfer started]], Channel[sendTo(file://c://output)], Channel[Log(route1)[cloud blob transfer completed]]]]
14:09:49.048 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Log(route1)[cloud blob transfer started]
14:09:49.079 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=processors,name="log1"
14:09:49.079 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Channel[Log(route1)[cloud blob transfer started]]
14:09:49.079 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> sendTo(file://c://output)
14:09:49.157 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=processors,name="to1"
14:09:49.172 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Channel[sendTo(file://c://output)]
14:09:49.172 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Log(route1)[cloud blob transfer completed]
14:09:49.172 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=processors,name="log2"
14:09:49.172 [main] DEBUG org.apache.camel.impl.RouteService - Starting child service on route: route1 -> Channel[Log(route1)[cloud blob transfer completed]]
14:09:49.235 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=routes,name="route1"
14:09:49.235 [main] DEBUG org.apache.camel.support.TimerListenerManager - Added TimerListener: org.apache.camel.management.mbean.ManagedSuspendableRoute@1ba9117e
14:09:49.235 [main] DEBUG org.apache.camel.management.DefaultManagementLifecycleStrategy - Load performance statistics disabled
14:09:49.235 [main] DEBUG org.apache.camel.component.file.GenericFileProducer - Starting producer: Producer[file://c://output]
14:09:49.235 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Route: route1 >>> EventDrivenConsumerRoute[azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob -> Pipeline[[Channel[Log(route1)[cloud blob transfer started]], Channel[sendTo(file://c://output)], Channel[Log(route1)[cloud blob transfer completed]]]]]
14:09:49.235 [main] DEBUG org.apache.camel.impl.DefaultCamelContext - Starting consumer (order: 1000) on route: route1
14:09:49.235 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=consumers,name=BlobServiceConsumer(0x29e495ff)
14:09:49.235 [main] DEBUG org.apache.camel.component.azure.blob.BlobServiceConsumer - Starting consumer: Consumer[azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob]
14:09:49.297 [main] DEBUG org.apache.camel.management.DefaultManagementAgent - Registered MBean with ObjectName: org.apache.camel:context=camel-1,type=threadpools,name="BlobServiceConsumer(0x29e495ff)"
14:09:49.297 [main] DEBUG org.apache.camel.impl.DefaultExecutorServiceManager - Created new ScheduledThreadPool for source: Consumer[azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob] with name: azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob -> org.apache.camel.util.concurrent.SizedScheduledExecutorService@506ae4d4[azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob]
14:09:49.297 [main] DEBUG org.apache.camel.impl.DefaultScheduledPollConsumerScheduler - Scheduling poll (fixed delay) with initialDelay: 1000, delay: 500 (milliseconds) for: azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob
14:09:49.297 [main] INFO org.apache.camel.impl.DefaultCamelContext - Route: route1 started and consuming from: azure-blob://abcdefgh/abcdefgh/test.rpm?azureBlobClient=%23clientreg&operation=getBlob
14:09:49.297 [main] INFO org.apache.camel.impl.DefaultCamelContext - Total 1 routes, of which 1 are started
14:09:49.313 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.21.0.fuse-740039-redhat-00001 (CamelContext: camel-1) started in 1.793 seconds

Программа завершает работу без загрузки BLOB-файла. Подскажите пожалуйста что и где мне не хватает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...