import karaf validation Jahia 7.3 Jahia 8

Missing nodetypes in import validation - How to discover which modules are missing

Question

You tried to import a web project from one oficial environment to a new environment and some contents showed nodetypes validation errors.

You need to figure out which modules were deployed in the original environment and then deploy them in the new environment.

Answer

To fix it you should find out which modules in the original environment have these definitions so you can deploy them in the new environment.

First you should check the logs in your new environment for an entry (or several) like this:

[WebprojectHandler] - Failed validation example_kb.zip/live-repository.xml validated in 248 ms: [overall result=failure, details=[[MissingModulesValidationResult=successful], [MissingTemplatesValidationResult=successful, targetTemplateSet=interval-jahia-templates, targetTemplateSetPresent=true, modulesMissingCounts={}, missingTemplates={}], [MissingNodetypesValidationResult=failure, missingNodetypes={}, missingMixins={mix:example=[/content/users/example/kb/example_kb.jpg]}], [MissingPortletsValidationResult=successful], [ProviderAvailabilityValidatorResult=successful, unavailableProviders=[]], [ConstraintsValidatorResult=successful], org.jahia.services.importexport.validation.UserValidatorResult@523c808e]]

Then you can run the following command in karaf command line (http://localhost:8080/modules/tools/karaf.jsp) for each one of the missing node_types/mixins (in this case only mix:example):

capabilities | grep "mix:exmaple"

NOTE: Karaf command line is available only from 7.3.0.1 and later. For older versions please connect to karaf shell following these instructions: Connecting to karaf shell

The output should show the module name (in bold) and list all nodetypes/mixins from this module:

[example-module [107](R 107.0)] com.jahia.services.content; {nodetypes=[jd[43;30mmix[m[mix:exmaple]} required by:[m

Then you can deploy the missing modules in the new environment and try to import one more time.