Servigistics InService Bereitstellung > Erweiterte Konfigurationen > Buchdruck-URL-Konfiguration
  
Buchdruck-URL-Konfiguration
Wenn Sie externe und interne URLs in Ihrer Umgebung verwenden, kann es unter Umständen zu Problemen mit der Buchdruckfunktion kommen. Es gibt eine Konfigurationseigenschaft, die in diesem Fall festgelegt werden kann.
Eigenschaft: com.ptc.sc.sce.util.SCEBulkPrintUtility.remotePrintServiceExtUrl
Beispiel: $(wt.webserver.protocol)://<externer Hostname des Servers>:externer HTTP-Port des Servers>/PrintMS/rest/PrintService
* 
Diese Eigenschaft sollte nur dann geändert werden, wenn die externe und interne Adresse des Servers sich unterscheiden.
Download-URL für die Funktionalität bookPrint in einer Cluster-Umgebung konfigurieren
Führen Sie die folgenden Schritte aus, um die Download-URL für die Funktionalität bookPrint in einer Cluster-Umgebung zu konfigurieren:
* 
Diese Schritte sind nur dann erforderlich, wenn die Servigistics InService Benutzer nicht über eine externe Domäne auf die in einer Cluster-Umgebung konfigurierten Viewers zugreifen können und lediglich über die Lastenausgleichs-URL auf die Servigistics InService Lieferungs-Site zugreifen können.
1. Erweitern Sie den Standard-com.ptc.sc.sce.services.SCEBulkPrintService und überschreiben Sie die folgenden Methoden:
getBulkPrintsStatus
printBulk
Diese beiden Methoden sind verantwortlich für das Erstellen der URL, die vom Client, der die Download-URL für die bookPrint-Funktionalität enthält, verwendet wird.
2. Geben Sie einen neuen Eigenschafts-Eintrag in 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"/>
ein.
3. Erstellen Sie die folgenden benutzerspezifischen Java-Klassen:
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. Führen Sie die folgenden Schritte aus, um diese Java-Klassen zu kompilieren:
a. Erstellen Sie einen neuen benutzerdefinierten Ordner im Verzeichnis <WT_HOME>/codebase.war/.
b. Erstellen Sie eine Paketstruktur für com.custom.sc.sce.services und com.custom.sc.sce.util.
c. Platzieren Sie die Datei CustomSCEBulkPrintService.java in das Paket com.custom.sc.sce.services.
d. Platzieren Sie die Datei CustomSCEBulkPrintUtility.java in das Paket com.custom.sc.sce.util.
e. Öffnen Sie eine Eingabeaufforderung, und gehen Sie zum Verzeichnis <WT_HOME>/bin.
f. Führen Sie die Windchill Shell aus. Es wird eine Windchill Shell geöffnet, die zum Kompilieren von Java-Dateien erforderlich ist.
g. Ändern Sie das Verzeichnis in <WT_HOME>.
h. Führen Sie den Befehl javac codebase.war/custom/com/custom/sc/sce/services/CustomSCEBulkPrintService.java aus.
i. Führen Sie den Befehl javac codebase.war/custom/com/custom/sc/sce/util/CustomSCEBulkPrintUtility.java aus.
j. Erstellen Sie eine ähnliche Paketstruktur wie com/custom/sc/sce/services/ und com/custom/sc/sce/util/ im Ordner <WT_HOME>/codebase.war/WEB-INF/classes/.
k. Legen Sie die kompilierten Java-Klassen an den entsprechenden Speicherorten ab.
l. Fügen Sie den folgenden Eintrag zur Datei site.xconf hinzu:
<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. Führen Sie xconfmanager -pF in einer Windchill Shell aus.
n. Starten Sie Servigistics InService neu.