응용 프로그램 개발을 위한 모범 사례 > ThingWorx Platform을 기반으로 하는 응용 프로그램 패키징 및 배포 > 개발 및 패키징 중 ThingWorx 응용 프로그램 문제 해결 및 디버깅
개발 및 패키징 중 ThingWorx 응용 프로그램 문제 해결 및 디버깅
다음 단원에서는 확장 개발 및 배포 중 몇 가지 문제를 해결하는 방법을 설명합니다.
성공적으로 가져온 후 사물 템플릿이 존재하지 않음
엔티티를 가져온 후 사물 템플릿을 만드는 동안 문제가 발생하면 응용 프로그램에서 사물 템플릿을 사용하지 못할 수 있습니다. 그러나 이 예외는 치명적이지 않습니다. 이 예외가 발생하는 가장 일반적인 이유는 사물 템플릿 클래스에 필요한 JAR 파일이 없기 때문입니다. 이 문제가 발생한 경우 다음 사항을 확인합니다.
확장의 metadata.xml 파일에서 필요한 JAR 파일에 대한 선언을 확인합니다.
필요한 JAR 파일이 확장의 lib/common 디렉터리에 있는지 확인합니다.
가져올 때 JAR 파일 충돌
응용 프로그램에서 ThingWorx Platform에 이미 로드된 JAR 파일을 사용할 경우 JAR 파일 충돌 예외가 발생할 수 있습니다. metadata.xml 파일에서 JAR를 제거하여 문제를 해결할 수 있습니다. 그러나 플랫폼에 다른 버전의 JAR가 로드된 경우에는 메타데이터 파일에서 JAR를 제거하는 것이 위험할 수 있습니다. 동일한 JAR의 여러 버전이 있을 경우 기능에서 충돌이 발생할 수 있습니다. 이 충돌은 확장이나 플랫폼 자체에 영향을 줄 수 있습니다. 최상의 해결 방법은 가능한 JAR를 사용하지 않는 것입니다.
확장을 가져올 때 문제 디버깅을 위해 로그 확인
ThingWorx 응용 프로그램은 모든 메시지를 응용 프로그램 로그에 로깅합니다. 확장을 가져오면 JAR 파일에서 클래스가 로드되고 엔티티가 작성되고 여러 백그라운드 프로세스가 동시에 실행됩니다. 이로 인해 예기치 않은 오류가 발생할 수 있습니다. 가져오기가 실패하거나 성공하지만 몇몇 ThingWorx 아티팩트가 누락될 수 있습니다. 이러한 오류가 발생할 경우 응용 프로그램 로그에서 오류 및 가져오는 동안 무엇이 문제였는지에 대한 설명을 찾아서 확인합니다.
응용 프로그램 및 기타 로그를 가져오려면 Composer의 모니터링 메뉴를 사용합니다.
Tomcat에 디버그 포트 연결
응용 프로그램을 디버깅하는 가장 좋은 방법은 Tomcat 인스턴스에 디버그 포트를 연결하는 것입니다. 이렇게 하면 IDE(통합 개발 환경)에서 플랫폼에 연결할 수 있습니다. 업로드한 코드에 중단점을 추가할 수 있습니다. 서비스를 트리거하거나 속성을 설정하거나 사물을 저장하거나 코드가 실행될 때 코드 내에서 발생한 일을 추적할 수 있습니다. 중단점을 설정한 코드와 동일한 코드를 업로드해야 합니다. 추가한 중단점이 코드의 다른 줄에 연결되어 값과 기능이 달라질 수 있습니다.
Tomcat에 디버그 포트를 추가하려면 시작할 때 Java 옵션을 추가해야 합니다. 디버그 포트를 추가하는 방법에는 여러 가지가 있으며, Tomcat을 시작하는 방법에 따라 달라집니다. Tomcat 및 IDE 설정에 따라 포트를 구성해야 합니다.