Диагностика проблем с портированием с Карафа 3.0.1 на 4.2.5 - PullRequest
0 голосов
/ 23 мая 2019

Раньше я работал на устаревшем сервисе с использованием Karaf 3.0.1. С тех пор я перешел в другой проект в той же организации, но первоначальной команде теперь нужно обновить систему до Karaf 4.2.5, и у них возникли проблемы с запуском Karaf. Я полагаю, что это ошибка в одном из файлов функций, но я не понимаю всех деталей.

При запуске они видят это:

2019-05-15T21:45:36,871 | INFO  | activator-1-thread-2 | Activator                        | 12 - org.apache.karaf.deployer.features - 4.2.5 | Deployment finished. Registering FeatureDeploymentListener
2019-05-15T21:45:36,885 | ERROR | activator-1-thread-2 | FeatureDeploymentListener        | 12 - org.apache.karaf.deployer.features - 4.2.5 | Unable to update deployed features for bundle: org.apache.felix.framework - 5.6.12
java.lang.NullPointerException: null
    at org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:247) [12:org.apache.karaf.deployer.features:4.2.5]
    at org.apache.karaf.deployer.features.FeatureDeploymentListener.init(FeatureDeploymentListener.java:95) [12:org.apache.karaf.deployer.features:4.2.5]

Я изучил исходный код для этой версии, и все, что я могу сказать по трассировке стека и по коду, это то, что он выбрасывает NPE в строку «removeAll» в этом блоке:

        Map<String, Set<String>> requirements = featuresService.listRequirements();
        requirements.get(ROOT_REGION).removeAll(reqsToRemove);
        requirements.get(ROOT_REGION).addAll(reqsToAdd);

Я могу предоставить файлы функций здесь, но я не уверен, какие из них применимы, поэтому я предоставлю все три, которые могут иметь отношение:

<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="https://urldefense.proofpoint.com/v2/url?u=http-3A__karaf.apache.org_xmlns_features_v1.0.0&d=DwIGaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=OsTemSXEn-xy2uk0vYF_EA&m=9OLBxruHRfaDacPPRgY0lo_uRQinK70ZT8iH3tYE3Ws&s=-WOdVjtBcTlU5U3nK04qXKhBM5YtFQVGqH6-T4ygUV4&e=" name="onemap-service-${pom.version}">
    <repository>mvn:com.att.ecom.apis/event-dashboard-impl/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:org.apache.cxf.karaf/apache-cxf/2.7.11/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/apis-base/1.1.0-SNAPSHOT/xml/features</repository>

    <feature name='onemap-impl' version='${pom.version}' resolver='(obr)'>
        <feature version="${pom.version}">onemap-api</feature>
        <feature version="1.1.0-SNAPSHOT">common-spring-jdbc</feature>
        <bundle>mvn:org.hibernate/hibernate-validator/4.2.0.Final</bundle>
        <bundle>mvn:com.att.ecom.apis/onemap-impl/${pom.version}</bundle>
        <configfile override="true" finalname="/etc/OneMapImpl.ApplicationProperties.cfg">mvn:com.att.ecom.apis/onemap-impl/${pom.version}/cfg/OneMapImpl.ApplicationProperties</configfile>
        <configfile override="true" finalname="/etc/OneMapImpl.BingMaps.cfg">mvn:com.att.ecom.apis/onemap-impl/${pom.version}/cfg/OneMapImpl.BingMaps</configfile>
        <configfile override="true" finalname="/etc/OneMapImpl.WaiCoverageProperties.cfg">mvn:com.att.ecom.apis/onemap-impl/${pom.version}/cfg/OneMapImpl.WaiCoverageProperties</configfile>
        <configfile override="true" finalname="/etc/OneMapImpl.CoverageCacheProperties.cfg">mvn:com.att.ecom.apis/onemap-impl/${pom.version}/cfg/OneMapImpl.CoverageCacheProperties</configfile>
    </feature>

    <feature name='onemap-api' version='${pom.version}' resolver='(obr)'>
         <feature version="1.1.0-SNAPSHOT">apis-base</feature>
         <bundle>mvn:javax.validation/com.springsource.javax.validation/1.0.0.GA</bundle>
         <bundle>mvn:com.att.ecom.apis/onemap-api/${pom.version}</bundle>
    </feature>

    <feature name='onemap-rest' version='${pom.version}' resolver='(obr)'>
        <feature version="1.1.0-SNAPSHOT">rest</feature>
        <feature version="1.1.0-SNAPSHOT">event-dashboard-impl</feature>
        <bundle>mvn:com.att.ecom.apis/onemap-rest/${pom.version}</bundle>
        <bundle>mvn:com.att.ecom.apis/rest-base/1.1.0-SNAPSHOT</bundle>
        <configfile override="true" finalname="/etc/OneMapRest.ApplicationProperties.cfg">mvn:com.att.ecom.apis/onemap-rest/${pom.version}/cfg/OneMapRest.ApplicationProperties</configfile>
    </feature>

    <feature name='onemap-service' version='${pom.version}' resolver='(obr)'>
        <feature version="${pom.version}">onemap-api</feature>
        <feature version="${pom.version}">onemap-impl</feature>
        <feature version="${pom.version}">onemap-rest</feature>
    </feature>
</features>

<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="https://urldefense.proofpoint.com/v2/url?u=http-3A__karaf.apache.org_xmlns_features_v1.0.0&d=DwIGaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=OsTemSXEn-xy2uk0vYF_EA&m=9OLBxruHRfaDacPPRgY0lo_uRQinK70ZT8iH3tYE3Ws&s=-WOdVjtBcTlU5U3nK04qXKhBM5YtFQVGqH6-T4ygUV4&e=" name="common-features-${pom.version}">
    <feature name='jackson' version='2.9.8' resolver='(obr)'>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-m10/2.9.0</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.9.8</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.9.8</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.9.8</bundle>
        <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.9.8</bundle>
        <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.9.8</bundle>
        <bundle>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.9.8</bundle>
    </feature>

    <feature name='httpclient' version='3.1.7' resolver='(obr)'>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/3.1_7</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-codec/1.3_5</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-io/1.4_3</bundle>
    </feature>

    <feature name='common' version='1.1.0-SNAPSHOT' resolver='(obr)'>
        <bundle>mvn:commons-lang/commons-lang/2.6</bundle>
        <bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
    </feature>

    <feature name='common-spring-jdbc' version='1.1.0-SNAPSHOT' resolver='(obr)'>
        <bundle>mvn:org.springframework/org.springframework.web/3.2.4.RELEASE</bundle>
        <bundle>mvn:org.springframework/org.springframework.jdbc/3.2.4.RELEASE</bundle>
        <bundle>mvn:org.springframework.ws/spring-xml/2.1.4.RELEASE</bundle>
    </feature>

    <feature name='quartz' version='2.3.1' resolver='(obr)'>
        <bundle>wrap:mvn:org.quartz-scheduler/quartz/2.3.1$Bundle-Name=quartz&amp;Bundle-SymbolicName=quartz&amp;Bundle-Version=2.3.1</bundle>
    </feature>

    <feature name='rest' version='1.1.0-SNAPSHOT' resolver='(obr)'>
        <feature version="1.1.0-SNAPSHOT">common</feature>
        <feature version="3.2.7">cxf</feature>
        <feature version="2.9.8">jackson</feature>
<!--         <feature version="3.1.7">httpclient</feature> -->
        <!-- By default cxf deploys with a "/cxf" context -->
        <config name="org.apache.cxf.osgi">
            org.apache.cxf.servlet.context=/*
        </config>
    </feature>
</features>

<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="https://urldefense.proofpoint.com/v2/url?u=http-3A__karaf.apache.org_xmlns_features_v1.0.0&d=DwIGaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=OsTemSXEn-xy2uk0vYF_EA&m=9OLBxruHRfaDacPPRgY0lo_uRQinK70ZT8iH3tYE3Ws&s=-WOdVjtBcTlU5U3nK04qXKhBM5YtFQVGqH6-T4ygUV4&e=" name="features-aggregate-1.1.55-SNAPSHOT">
    <repository>mvn:com.att.ecom.apis/onemap-impl/1.4.3-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/external-services-impl/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/cassandra-dao-impl/1.1.7-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/unlock-features/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/service-monitoring/1.1.1-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/eai-service-impl/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/gddn-service-impl/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/sli-service-impl/1.1.0-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/fraud-alert-impl/1.1.2-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.personalization/personalization/1.1.11-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/fan-profile-automation/1.1.5-SNAPSHOT/xml/features</repository>
    <repository>mvn:com.att.ecom.apis/email-service/1.1.0-SNAPSHOT/xml/features</repository>

    <feature name='full-deploy' version='1.1.55-SNAPSHOT' resolver='(obr)'>
        <bundle>mvn:org.jolokia/jolokia-osgi/1.6.1</bundle>
        <feature version="1.4.3-SNAPSHOT">onemap-service</feature>
        <feature version="1.1.0-SNAPSHOT">external-services</feature>
        <feature version="1.1.7-SNAPSHOT">cassandra-dao</feature>
        <feature version="1.0.0">unlock-features</feature>
        <feature version="1.1.1-SNAPSHOT">service-monitoring</feature>
        <feature version="1.1.0-SNAPSHOT">eai-service-impl</feature>
        <feature version="1.1.0-SNAPSHOT">gddn-service-impl</feature>
        <feature version="1.1.0-SNAPSHOT">sli-service-impl</feature>
        <feature version="1.1.2-SNAPSHOT">fraud-alert-impl</feature>
        <feature version="1.1.2-SNAPSHOT">fraud-alert-rest</feature>
        <feature version="1.1.11-SNAPSHOT">personalization-incub</feature>
        <feature version="1.1.5-SNAPSHOT">fan-profile-automation</feature>
        <feature version="1.1.0-SNAPSHOT">email-service</feature>
    </feature>
</features>
...