Entrega de conteúdo Tridion “Erro ao configurar a estrutura de dados ambiente”

4

Instalei o serviço da Web de entrega de conteúdo Tridion em um sistema Windows Server 2008 R2 de 64 bits, com a intenção de configurar o UGC. (Na verdade, eu tenho dois serviços, ambos exibem o mesmo problema).

Meu serviço tem a estrutura ambiental HttpModule configurada, e o cd_ambient_conf.xml é uma cópia da versão padrão fornecida com o produto, no entanto, o elemento Security está comentado. Eu estou testando, visitando o endpoint odata.svc no navegador.

No elemento Cartridges, tenho o seguinte:

<Cartridges>
        <Cartridge File="cd_ambient_cartridge_conf.xml"/>
        <Cartridge File="ugc_ambient_cartridge.xml"/> 
</Cartridges>

Quando configurado como este, ou se eu comentar o cartucho cd_ambient e deixar o cartucho ugc_ambient, obtenho uma exceção de referência nula:

[NullReferenceException: Object reference not set to an instance of an object.]
Tridion.ContentDelivery.AmbientData.HttpModule.OnRequestStart
                                                (Object sender, EventArgs e) +292
System.Web.SyncEventExecutionStep.System.Web
                                    .HttpApplication.IExecutionStep.Execute() +79
System.Web.HttpApplication.ExecuteStep(
                       IExecutionStep step, Boolean& completedSynchronously) +269

Se eu configurar apenas o cartucho cd_ambient, obtenho o seguinte erro:

[AmbientDataException: Error while configuring ambient data framework]

Se eu remover os dois cartuchos, o serviço será exibido sem um erro. Estou especulando que os erros de referência nula são causados talvez por um valor de configuração ausente, mas pelo menos o cd_ambient_conf.xml transmite validação de esquema, portanto, talvez não.

Então ... o que provavelmente é a causa deste problema, e há alguma técnica de depuração ou análise que possa me ajudar a descobrir mais?

EDIT: Agora removi a referência cd_ambient_cartridge_conf.xml de dentro dos cartuchos. Portanto, com apenas a referência ugc_ambient_cartridge.xml, recebo o seguinte erro no log de cd_core (e estou de volta para obter o erro [AmbientDataException: Erro ao configurar o ambiente de dados de ambiente]):

2012-05-11 15:03:51,073 WARN  AmbientDataContext - There is no current ambient 
       data context - the ambient data framework is not properly initialised
2012-05-11 15:03:51,171 ERROR EngineFactory - Unable to configure the 
                                                       AmbientData Framework
com.tridion.configuration.ConfigurationException: 
   Can't find configuration file: [ ugc_ambient_cartridge.xml ]
at         com.tridion.configuration.XMLConfigurationReader.readConfiguration(
                                XMLConfigurationReader.java:92) ~[cd_core.jar:na]
at         com.tridion.ambientdata.AmbientDataConfig.getCartridgeConfigurations(
                                 AmbientDataConfig.java:155) ~[cd_ambient.jar:na]
at com.tridion.ambientdata.EngineFactory.newEngine(
                                      EngineFactory.java:45) ~[cd_ambient.jar:na]
    
por Dominic Cronin 11.05.2012 / 12:46

1 resposta

3

É provavelmente o cd_ambient_cartridge_conf.xml que contém erros. O cartucho padrão é enviado como um exemplo do que você poderia fazer com um cartucho personalizado.

Remova o cartucho do seu cd_ambient_conf.xml e tente novamente.

A exceção de referência nula provavelmente significa que você está perdendo jars e / ou configuração para UGC. Verifique os logs do Tridion para informações adicionais sobre isso.

UPDATE

Isso é o que eu tenho no meu website habilitado para UGC:

No Web.Config (apenas as partes relevantes mostradas):

<appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    <add key="ODataEndpoint.URL" value="http://localhost:903/odata.svc"/>
    <add key="ODataEndpoint.ConnectionTimeout" value="20000"/>
    <add key="ODataEndpoint.ReadTimeout" value="20000"/>
</appSettings>
[...]
<controls>
    <add tagPrefix="tridion" namespace="Tridion.ContentDelivery.Web.UI" assembly="Tridion.ContentDelivery"/>
    <add tagPrefix="ugc" namespace="Tridion.ContentDelivery.UGC.Web.UI" assembly="Tridion.ContentDelivery.UGC" />
</controls>
[...]
<modules runAllManagedModulesForAllRequests="true">
  <add type="Tridion.ContentDelivery.AmbientData.HttpModule" name="AmbientFrameworkModule" preCondition="managedHandler" />
</modules>

Em / bin:

  • Tridion.ContentDelivery.AmbientData.dll
  • Tridion.ContentDelivery.UGC.dll

(mais os padrões)

Em /bin/config/cd_ambient_conf.xml:

<Cartridges>
    <Cartridge File="ugc_ambient_cartridge.xml"/>
</Cartridges>

Em /bin/config/cd_ugc_conf.xml:

<ODataEndpoint URL="http://localhost:903/odata.svc" />

Todo o resto neste arquivo é o que estava lá por padrão.

Em / bin / lib, relacionado a UGC:

  • ucg_tcdl.jar
  • ugc_webservice.jar
  • ugc_dynamic.jar
  • ugc_model.jar
  • ugc_storage.jar
  • ugc_taglib.jar
  • cd_ambient.jar
por 11.05.2012 / 13:59