Aspose 라이센스 개체는 어떻게 작동합니까? 영원히 지속됩니까?

StackOverflow https://stackoverflow.com/questions/2416216

  •  19-09-2019
  •  | 
  •  

문제

PDF 및 Word 문서를 처리하는 데 사용하고 있습니다. 문서로 무언가를 할 때마다 이것을 호출해야합니다.

Aspose.Pdf.License pdfLicense = new Aspose.Pdf.License();
pdfLicense.SetLicense("Aspose.Total.lic");

Aspose.Words.License wordLicense = new Aspose.Words.License();
wordLicense.SetLicense("Aspose.Total.lic");

그만큼 pdfLicense 그리고 wordLicense 변수는 어디에도 사용되지 않지만 유효한 라이센스가 있음을 정확하게 인식합니다. 이런 일이 어떻게 발생합니까? 비밀 싱글 톤에서 라이센스가 보유되고 있습니까? 그렇다면 이것은 그들이 실의 수명 동안 지속된다는 것을 의미합니까?

이것이 웹 응용 프로그램에서 사용되므로 응용 프로그램이 시작될 때 위 코드를 실행하면 라이센스에 대해 걱정하지 않고 응용 프로그램 전체에서 안전하게 사용할 수 있습니까?

현재 나는 더 편집증이 많고 Aspose를 사용하는 모든 방법의 시작 부분에서 해당 코드를 실행합니다. 이것은 제대로 작동합니다 - 내 라이센스는 올바르게 인식되어 있지만, 편안하게 느끼기 위해 너무 "프로그래밍 별명"입니다.

(차이가있는 경우 ASP.NET 3.5와 함께 C#을 사용하고 있습니다.)

도움이 되었습니까?

해결책

당신이 읽으면 제품 문서, 당신은이 줄을 볼 것입니다 :

문서로 작업을 수행하기 전에 라이센스를 설정해야합니다. 라이센스를 설정하면됩니다 응용 프로그램 당 한 번 (또는 프로세스).

따라서 프로세스 중심입니다.

다른 팁

Aspese의 Java 버전에서 라이센스가 전화하여 설정되었는지 확인할 수 있습니다.

License.isLicenseSet();

부울을 반환합니다. 이것은 정적 방법입니다.

나는 이것을 할 수있는 스프링 콩을 만들려고 시도했지만 (아래와 같이) 작동하지 않았습니다. Spring은 License.setLicense (String) 대신 License.setLicense (Reader)를 호출하는 것처럼 보였습니다. 내가 얻는 오류는 'java.lang.string'유형의 속성 값을 변환하지 못했습니다..

<bean id="asposeLicense" class="com.aspose.cells.License">
    <property name="license" value="Aspose.Cells.lic" />
</bean>

그러나이보다 일반적인 (Java) 솔루션을 작동 시켰습니다.

web.xml :

<!-- does things needing doing when application starts or stops -->
<listener>
    <listener-class>
        com.xyz.listener.ApplicationStartupListener
    </listener-class>
</listener>

ApplicationStartUplistener.java (새 클래스) :

package com.xyz.listener;

import java.io.InputStream;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.aspose.cells.License;

public class ApplicationStartupListener implements ServletContextListener {
    protected final Log logger = LogFactory.getLog(getClass());

    @Override
    public void contextInitialized(ServletContextEvent event) {
    logger.info("Initializing application context...");

    try {
        // set license for Aspose.Cells (the Excel API)
        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("excel/Aspose.Cells.lic");
        License license = new License();
        license.setLicense(inputStream);
        logger.info("Aspose.Cells license set? " + License.isLicenseSet());
    } catch (Exception e) {
        logger.error("Error encountered trying to set Aspose.Cells license!", e);
    }

    logger.info("Application context initialized");
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
    }

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top