책 인쇄 URL 구성
사용자의 환경에 외부 및 내부 URL이 있으면 책 인쇄 기능에 문제가 발생할 수 있습니다. 이 상황에서 설정할 수 있는 구성 특성이 있습니다.
• 특성: com.ptc.sc.sce.util.SCEBulkPrintUtility.remotePrintServiceExtUrl
• 예: $(wt.webserver.protocol)://<서버 외부 호스트 이름>:서버 외부 http 포트>/PrintMS/rest/PrintService
|
|
서버에 내부 주소와 다른 외부 주소가 있는 경우에만 이 특성을 수정해야 합니다.
|
클러스터 환경에서 bookPrint 기능에 대한 다운로드 URL 구성
클러스터 환경에서 bookPrint 기능에 대한 다운로드 URL을 구성하려면 다음 단계를 수행합니다.
|
|
이 단계는 클러스터 환경에서 구성된 Viewer를 외부 도메인에서 Servigistics InService 사용자가 액세스할 수 없으며 부하 분산 장치 URL을 통해서만 Servigistics InService 배달 사이트에 액세스할 수 있는 경우에만 필요합니다.
|
1. 기본 com.ptc.sc.sce.services.SCEBulkPrintService를 확장하고 다음 메서드를 무시합니다.
◦ getBulkPrintsStatus
◦ printBulk
이 두 가지 메서드는 인쇄본 기능에 대한 다운로드 URL을 포함하는 클라이언트로의 URL을 구축하는 역할을 수행합니다.
2. site.xconf에 새 등록 정보 엔트리를 추가합니다.
<Property name="com.custom.sc.sce.util.CustomSCEBulkPrintUtility.
webAliasPrintServiceUrl"
default="<load balance protocol>://<load balancer host name>:< load balancer
port>/PrintMS/rest/PrintService"
overridable="true"/>
3. 다음 사용자 정의 JAVA 클래스를 작성합니다.
◦ CustomSCEBulkPrintService.java
package com.custom.sc.sce.services;
import java.util.List;
import javax.ws.rs.core.MultivaluedMap;
import com.custom.sc.sce.util.CustomSCEBulkPrintUtility;
import com.ptc.sc.conceptualmodel.SCItem;
import com.ptc.sc.conceptualmodel.SCList;
import com.ptc.sc.sce.services.SCEBulkPrintService;
import com.ptc.sc.servicecommon.BulkPrintService;
public class CustomSCEBulkPrintService extends SCEBulkPrintService {
private static final long serialVersionUID = 1L;
/**
* Create a new instance of the
<code>CustomSCEBulkPrintService</code>.
* This factory method is required in order for the method server
process to start successfully.
*/
public static CustomSCEBulkPrintService newCustomSCEBulkPrintService() {
CustomSCEBulkPrintService bulkPrintService = new CustomSCEBulkPrintService();
return bulkPrintService;
}
@Override
public SCList getBulkPrintsStatus(List<String> statusList) throws Exception {
SCList bulkPrintsStatus = super.getBulkPrintsStatus(statusList);
List<SCItem> bulkPrintStatusItems = bulkPrintsStatus.getItems();
for(SCItem bulkPrintStatusItem : bulkPrintStatusItems) {
if(bulkPrintStatusItem.containsAttribute(BulkPrintService.BULK_PRINT_URL)) {
bulkPrintStatusItem.removeAttribute(BulkPrintService.BULK_PRINT_URL);
String printJobId = bulkPrintStatusItem.getAttribute(BulkPrintService.BULK_PRINT_JOB_ID);
bulkPrintStatusItem.addAttribute(BulkPrintService.BULK_PRINT_URL,
getWebAliasPrintJobUrl(printJobId));
}
}
return bulkPrintsStatus;
}
public SCItem printBulk(String bulkPrintId, MultivaluedMap<String, String> headersMap) throws
Exception {
SCItem printBulkItem = super.printBulk(bulkPrintId, headersMap);
if(printBulkItem.containsAttribute(BulkPrintService.BULK_PRINT_URL)) {
String printJobId = printBulkItem.getAttribute(BulkPrintService.BULK_PRINT_JOB_ID);
printBulkItem.removeAttribute(BulkPrintService.BULK_PRINT_URL);
printBulkItem.addAttribute(BulkPrintService.BULK_PRINT_URL,
getWebAliasPrintJobUrl(printJobId));
return printBulkItem;
} }
private String getWebAliasPrintJobUrl(String printJobId) {
String url = CustomSCEBulkPrintUtility.getWebAliasPrintServerUrl() + "/pdf?id=" + printJobId;
return url;
}
}
◦ CustomSCEBulkPrintUtility.java
package com.custom.sc.sce.util;
import wt.util.WTProperties;
public class CustomSCEBulkPrintUtility {
private static final String WEB_ALIAS_PRINT_SERVICE_URL;
static {
try {
WEB_ALIAS_PRINT_SERVICE_URL =
WTProperties.getLocalProperties().
getProperty(CustomSCEBulkPrintUtility.class.getName() +
".webAliasPrintServiceUrl", "http://localhost:8080/webrest/rest/PrintService");
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static String getWebAliasPrintServerUrl() {
return WEB_ALIAS_PRINT_SERVICE_URL;
}
}
4. 이러한 JAVA 클래스를 컴파일하려면 다음 단계를 수행합니다.
a. <WT_HOME>/codebase.war/ 디렉토리에 새 사용자 정의 폴더를 생성합니다.
b. com.custom.sc.sce.services 및 com.custom.sc.sce.util에 대한 패키지 구조를 작성합니다.
c. 패키지 com.custom.sc.sce.services에 CustomSCEBulkPrintService.java 파일을 삽입합니다.
d. 패키지 com.custom.sc.sce.util에 CustomSCEBulkPrintUtility.java 파일을 삽입합니다.
e. 명령 프롬프트를 열고 <WT_HOME>/bin 디렉토리로 이동합니다.
f. Windchill 셸을 실행합니다. JAVA 파일을 컴파일하는 데 필요한 Windchill 셸이 열립니다.
g. 디렉토리를 <WT_HOME>으로 변경합니다.
h. javac codebase.war/custom/com/custom/sc/sce/services/CustomSCEBulkPrintService.java 명령을 실행합니다.
i. javac codebase.war/custom/com/custom/sc/sce/util/CustomSCEBulkPrintUtility.java 명령을 실행합니다.
j. <WT_HOME>/codebase.war/WEB-INF/classes/ 폴더 안에 com/custom/sc/sce/services/ 및 com/custom/sc/sce/util/과 유사한 패키지 구조를 작성합니다 .
k. 해당 위치에 컴파일된 JAVA 클래스를 삽입합니다.
l. site.xconf 파일에 다음 엔트리를 추가합니다:
<Property name="wt.services.service.24440"
targetFile="codebase.war/sc.properties"
default="com.ptc.sc.servicecommon.BulkPrintService
/com.custom.ptc.sc.sce.services.CustomSCEBulkPrintService"
overridable="true"
/>
m. Windchill 셸에서 xconfmanager -pF를 실행합니다.
n. Servigistics InService를 다시 시작합니다.