Man*_*ngh 2 java tridion tridion-content-delivery tridion-2011
我的下面的代码在Tridion 2009中运行良好,最近我们迁移到了Tridion 2011,下面是用java编写的代码.
获取文件: ExtensionsConfiguration.java
package com.tridion.custom.extensions;
import com.tridion.configuration.Configuration;
import com.tridion.configuration.ConfigurationException;
import com.tridion.configuration.XMLConfigurationReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExtensionsConfiguration
{
  private static Logger logger = LoggerFactory.getLogger(ExtensionsConfiguration.class);
  private static Configuration configuration;
  public static Configuration getInstance()
  {
    if (configuration == null)
      try
      {
        XMLConfigurationReader localXMLConfigurationReader = new XMLConfigurationReader();
        configuration = localXMLConfigurationReader.readConfiguration("cd_deployer_ext.xml");
        logger.info("ExtensionsConfiguration.getInstance:File Read",configuration.getContent());
      }
      catch (ConfigurationException localConfigurationException)
      {
        logger.error("ExtensionsConfiguration.ConfigurationException: Unable to read configuration.", localConfigurationException);
      }
      catch (Exception ex)
      {
        logger.error("ExtensionsConfiguration.Exception: Unable to read configuration.", ex.getStackTrace());
      }
    return configuration;
  }
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我试图读取位于%TRIDION_HOME%/ config内的"cd_deployer_ext.xml",上面的代码在2009年运行良好.
cd_deployer_ext.xml的示例格式
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <DeployerCustomization Enable="true" Extension=".aspx" FilePath="F:\WWW\GoogleDataFiles\"></DeployerCustomization>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
以下是我尝试从此文件中读取值的方法
读取值: PageDeployer.java下面我用来读取ExtensionsConfiguration.java中的值的示例代码
Configuration configData = ExtensionsConfiguration.getInstance();
String extensionFromFile = ConfigurationHelper.getStringValue(configData,"Configuration/DeployerCustomization/Extension", null);
Run Code Online (Sandbox Code Playgroud)
现在extensionFromFile应该给我".aspx".
请建议!!
谢谢.
在我看来你的ExtensionsConfiguration课看起来很好,但问题在于读取'PageDeployer`中的值的代码.
您的xml文件有一个节点DeployerCustomization,Name其中包含您尝试使用的等属性,XPath并且您的XPath表达式似乎没有查找它正在寻找节点的属性DeployerCustomization.
您需要将代码更改为以下内容并尝试(请注意@for属性和/在开头):
  String extensionFromFile = ConfigurationHelper.getStringValue(configData,
"/Configuration/DeployerCustomization/@Extension", null);
Run Code Online (Sandbox Code Playgroud)
希望有助于获得配置.
记录:
您创建了一个新的包类,该类未配置为使用logback.xml进行日志记录.如果要配置日志记录,则需要将软件包添加到logback配置中(例如下面的内容).
<logger name="com.tridion.custom.extensions">
  <appender-ref ref="rollingDeployerLog"/>
</logger>
Run Code Online (Sandbox Code Playgroud)
在完全独立的注释中,您使用的API com.tridion.configuration.XMLConfigurationReader似乎不公开.除非我错过了,否则我无法在javadoc中找到它.但是,我会把它留给你.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           381 次  |  
        
|   最近记录:  |