Scala RemoteActors를 사용할 때 scala.actors.remote.NetKernel을 참조하는 ClassNotFoundException이 발생했습니다. 나는 다른 사람의 모범을 복사하여 RemoteActor.classLoader = getClass.getClassLoader
을 내 Actor에게 추가했는데 이제는 모든 것이 작동합니다. 왜 이것이 필요한가?Scala RemoteActors에서 클래스 로더를 설정해야하는 이유는 무엇입니까?
5
A
답변
5
원격 액터는 자바 직렬화를 사용하여 메시지를주고받습니다. 액터 라이브러리 안에는 객체를 소켓으로 직렬화하는 데 사용되는 사용자 객체 입력 스트림 (https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/actors/scala/actors/remote/JavaSerializer.scala)이 있습니다. 라우팅 코드와 다른 마술도 있습니다.
어떤 경우 이건, 원격 처리에 사용되는 ClassLoader가 중요합니다. 당신이 익숙하지 않다면 자바 RMI를 찾아 볼 것을 권한다. 어쨌든 스칼라가 액터를 직렬화/비 직렬화 할 때 선택하는 ClassLoader는 RemoteActor에 위치한 클래스로, 기본값은 null입니다.
기본적으로 ClassLoader를 지정하지 않으면 불만이 생길 것입니다.
OSGi와 같은 클래스 로더를 제어하는 환경에 있다면이 값을 연쇄 배우가 사용하는 모든 클래스에 액세스 할 수있는 클래스 로더로 설정해야합니다.
희망 하시겠습니까?
관련 문제
- 1. ContentControl에서 IsTabStop을 true로 설정해야하는 이유는 무엇입니까?
- 2. 클래스에서 오는 경우 IsRequired를 설정해야하는 이유는 무엇입니까?
- 3. 변수를 private/public으로 설정해야하는 이유는 무엇입니까?
- 4. 코드 서명을 할 때 타임 스탬프를 설정해야하는 이유는 무엇입니까?
- 5. document.domain을 설정하면 모든 팝업 및 iframe에도 설정해야하는 이유는 무엇입니까?
- 6. HTML 텍스트 상자의 값을 null로 설정해야하는 이유는 무엇입니까?
- 7. OutputCache 특성에서 VaryByParam 매개 변수를 설정해야하는 이유는 무엇입니까?
- 8. 선택 사항 인 경우 내 영사를 별명으로 설정해야하는 이유는 무엇입니까?
- 9. 로거를 설정해야하는 액세스 수준은 무엇입니까?
- 10. 별도의 클래스 로더를 사용하고 동일한 JVM에서 실행하는 방법은 무엇입니까? (OSGI)
- 11. 춘분으로 번들에 대한 클래스 로더를 얻는 방법은 무엇입니까?
- 12. 프리 로더를 사용할 때 NetStream FLV 재생이 끊기는 이유는 무엇입니까?
- 13. scala-android.jar의 정의는 무엇입니까?
- 14. 게시자 및 구독자 특성이있는 Scala 클래스
- 15. Scala REPL에서 클래스 또는 패키지를 다시로드하는 방법?
- 16. perm gen 공간에서의 Scala 클래스 정의 효과
- 17. 이 Scala 표현식에서이 nullary 함수에 대괄호가 필요한 이유는 무엇입니까?
- 18. net.tcp 서비스에 대해 설정해야하는 SPN은 무엇입니까?
- 19. asp.net 앱에서 generatePublisherEvidence를 false로 설정해야하는 위치는 무엇입니까?
- 20. ASP.Net의 페이지 지시문에서 AutoEventWireup을 설정해야하는 값은 무엇입니까?
- 21. scala SocketServer
- 22. 모듈 로더를 확장하는 가장 좋은 방법은 무엇입니까?
- 23. scala 2.8.1에서 scala 2.9.1 로의 주요 변경 사항은 무엇입니까?
- 24. Eclipse에서 Scala 프로젝트를 배포하는 방법은 무엇입니까?
- 25. Scala Tuple Deconstruction
- 26. 시스템 클래스 경로를 사용하지 않고 J2EE/Weblogic 10에서 동일한 클래스 로더를 사용하는 인터페이스 클래스 공유
- 27. jboss 4.2.2 org.apache.ws.security.transform.STRTransform에 대한 클래스 로더를 찾을 수 없습니다.
- 28. 링커와 로더를 별도의 프로그램으로 분리하는 이유
- 29. 플래시에서 부트 로더를 디버깅하는 방법은 무엇입니까?
- 30. Java에서 범용 파일 로더를 구현하는 방법은 무엇입니까?
철저한 답변을 보내 주셔서 감사합니다. 스칼라가 null보다 나은 기본값을 선택할 수있는 방법이 없습니까? –
내가 아는 한 'null'이 플랫폼 기본값입니다. 실제로'null' 클래스 로더는 Java 런타임을 설정하는 "System class loader"를 참조합니다. – soc
시스템 클래스 로더가 정상적인 이유는 무엇입니까? –