몇 가지 이유로 배포자를 사용자 정의해야하는데, using java for customizing deployer 인 기사 만 볼 수 있습니다..NET을 사용하여 Deployer를 사용자 정의 할 수 있습니까?
.NET 프로젝트를 사용하여 배포자를 사용자 정의 할 수 있습니까? 가능한 경우 공유하고 생각해보십시오.
몇 가지 이유로 배포자를 사용자 정의해야하는데, using java for customizing deployer 인 기사 만 볼 수 있습니다..NET을 사용하여 Deployer를 사용자 정의 할 수 있습니까?
.NET 프로젝트를 사용하여 배포자를 사용자 정의 할 수 있습니까? 가능한 경우 공유하고 생각해보십시오.
Deployer는 Java를 사용하여 확장 가능합니다. 가장 좋은 방법은 .NET을 사용하여 완전히 사용자 지정 작업을 수행하려는 경우 FTP (또는 프로세스 Deployer가없는 HTTP)를 사용하여 파일을 게시하고 파일을 처리 할 수있는 파일 시스템 감시가있는 .NET 응용 프로그램을 만드는 것입니다.
달성하려는 항목과 SDL Tridion 버전에 대해 더 많은 정보를 공유하여 더 많은 제안을 제공 할 수 있습니다.
확실한 대답은 NO
입니다. Deployer는 Content Delivery의 다소 낮은 수준이며 확장 점은 Java에서만 사용할 수 있습니다.
그러나이 고양이를 껍질을 벗기는 데는 여러 가지 방법이 있습니다. 모두 당신이 성취하고자하는 것에 달려 있습니다.
예를 들어 확장 프로그램의 모든 작업을 수행하는 .NET으로 웹 서비스를 만들고이 웹 서비스를 호출하는 간단한 Deployer 모듈 (Java 사용)을 작성하여 필요한 모든 매개 변수를 전달할 수 있습니다.
배포자가 수신하는 실제 위치로 패키지를 전달하기 전에 .NET 메서드가 호출 될 위치로 게시하여 전송 패키지를 사전 처리 할 수 있습니다.
후 처리를 선호하는 경우 성공적인 거래를 유지하고 배포자가 저장 위치 ("수신 폴더"+ "\ 성공")를 모니터링하도록 배포자를 구성 할 수 있습니다.
정말 모든 것은 당신이 달성하기를 원하는 것에 달려 있습니다. 권장되는 방법은 Java를 사용하는 것이지만, 해당 언어에 익숙하지 않은 경우 최소한의 Java 코딩만으로 창의적으로 동일한 결과를 얻을 수 있습니다. 여기에 게시되는 항목을 통해 루프 및 개체에 대한 정보를 기록에 "빈"모듈의 예는 다음과 같습니다
귀하의 의견import java.util.Iterator;
import com.tridion.configuration.Configuration;
import com.tridion.configuration.ConfigurationException;
import com.tridion.deployer.Module;
import com.tridion.deployer.ProcessingException;
import com.tridion.deployer.Processor;
import com.tridion.transport.transportpackage.Binary;
import com.tridion.transport.transportpackage.BinaryKey;
import com.tridion.transport.transportpackage.Component;
import com.tridion.transport.transportpackage.ComponentKey;
import com.tridion.transport.transportpackage.MetaData;
import com.tridion.transport.transportpackage.MetaDataFile;
import com.tridion.transport.transportpackage.Page;
import com.tridion.transport.transportpackage.PageKey;
import com.tridion.transport.transportpackage.ProcessorInstructions;
import com.tridion.transport.transportpackage.Section;
import com.tridion.transport.transportpackage.TransportPackage;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
public class CustomCacheNotificationDeploy extends Module {
String action = null;
Logger log = null;
MetaDataFile pageMeta = null;
MetaDataFile componentMeta = null;
MetaDataFile binaryMeta = null;
public CustomCacheNotificationDeploy(Configuration config, Processor processor)
throws ConfigurationException {
super(config, processor);
log = LoggerFactory.getLogger(getClass());
// TODO Auto-generated constructor stub
}
@SuppressWarnings("deprecation")
public void process(TransportPackage data) throws ProcessingException{
ProcessorInstructions instructions = data.getProcessorInstructions();
action = instructions.getAction();
MetaData pageMetaInfo = instructions.getMetaData("Pages");
MetaData componentMetaInfo = instructions.getMetaData("Components");
MetaData binaryMetaInfo = instructions.getMetaData("Binaries");
pageMeta = data.getMetaData("Pages", pageMetaInfo.getName());
componentMeta = data.getMetaData("Components", componentMetaInfo.getName());
binaryMeta = data.getMetaData("Binaries", binaryMetaInfo.getName());
log.debug("Action " + action + " started for publication " + instructions.getPublicationId());
Section section = null;
Iterator<Section> Sections = instructions.getSections();
for(; Sections.hasNext(); processSection(section))
{
section = Sections.next();
}
}
protected void processSection(Section section)
{
log.debug("Processing Section " + section.getName());
Iterator iterator = section.getFileItems();
Object item;
for(; iterator.hasNext(); processItem(item, section))
{
item = iterator.next();
}
Section subSection;
for(Iterator i$ = section.getSubSections().iterator(); i$.hasNext(); processSection(subSection))
subSection = (Section)i$.next();
}
protected void processItem(Object obj, Section section)
{
if(obj instanceof PageKey)
{
log.debug("Object is Page");
PageKey key = (PageKey) obj;
Page page = (Page)pageMeta.getMetaData(key);
log.debug("Page being deployed is " + page.getId() + " with URL " + page.getURLPath());
}
if(obj instanceof ComponentKey)
{
log.debug("Object is Component");
ComponentKey key = (ComponentKey) obj;
Component component = (Component)componentMeta.getMetaData(key);
log.debug("Component being deployed is " + component.getId());
}
if(obj instanceof BinaryKey)
{
log.debug("Object is Binary");
BinaryKey key = (BinaryKey) obj;
Binary binary = (Binary)binaryMeta.getMetaData(key);
log.debug("Binary being deployed is " + binary.getId() + " with URL " + binary.getURLPath());
}
}
}
안녕하세요 누노, 귀하의 회신을 보내 주셔서 감사합니다 구현이 구현을 위해 나를 도울 것입니다 (http://stackoverflow.com/questions/10674431/server-performance-going-down-while-we-trying-to-get- 일부 데이터 -에서 tridion - 2009) –
안녕하세요 크리스 덕분에, 나는 우리가 .NET 덕분에를 사용하여 사용자 정의 할 수 없습니다 꽤 확신했다 확인, 실제로 Google Markup HTML을 구현하려고합니다.이 질문을 참조하십시오 (http://stackoverflow.com/questions/10674431/server-performance-going-down-while-we-trying-to-get-some-data). -from-tridion-2009) .. 좀 봐주세요! –