2013-10-08 3 views
0

나는 java.lang.ClassNotFoundException가 받고 있어요 : org.postgresql.Driver를 나는 내가에 다음 한 http://slick.typesafe.com/doc/1.0.1/sql.htmlClassNotFoundException가, 그리고 포스트 그레스

에서 "일반 SQL"예를 따라갈 때 내 build.sbt libraryDependencies :

Database.forURL ("JDBC : PostgreSQL은"PostgreSQL은 "%"PostgreSQL은 "%"9.1-901.jdbc4 "

나는 예제의 H2 드라이버 라인 대신에 다음 줄을 사용 : // localhost/myDatabase : mySchema : myPassword ", driver ="org.postgresql.Driver ") withSession {...

내가 잘못 여기하고있어 확실하지 무엇

...

답변

0

이 명확하게 (항아리에 사용 가능) org.postgresql.Driver 클래스를 보여준다는 CLASSPATH에 있지 않습니다. 독립형입니까, 아니면 모든 서버에서 사용할 수 있습니까? 응용 프로그램/웹 서버에서 put jar in CLASSPATH 경우 사용할 수

하면 독립형 애플리케이션, put jar in webapp lib directory

+0

드라이버가 CLASSPATH에 있지만이 문제는 sbt와 관련이 없어야하고, 종속 경로는 클래스 경로에 아무 것도없는 경우에도 처리해야한다는 인상 아래에있었습니다. 비록 CLASSPATH가 아닐지라도 매끄러운 의존성을 위해 확실히 작동합니다. – Turar

2

나는 드라이버는 클래스 경로에없는, 그래서 당신의 SBT의 설정에 문제가있을 수 있습니다 동의합니다.

그러나 종속성 "postgresql" % "postgresql" % "9.1-901.jdbc4"은 괜찮아 보이며 그 항아리에는 드라이버가 들어있는 것 같습니다. 그래서이 줄은 단순히 무시됩니다.

+0

아마 맞을 것입니다. 무엇이 확실하지 않은 sbt config에 뭔가 잘못된 것이 있어야합니다. 나는 import 라인을 추가했다 : import org.postgresql.Driver, 그리고 그것은 효과가 있었다. 이 예에서는 필요하지 않다고 분명히 명시했지만 문제는 드라이버가 forURL 호출로 문자열로 전달되어 컴파일되지 않아 컴파일시 해결되지 않는 종속성이 발생한다는 것입니다. – Turar

+0

"컴파일시에 의존성을 해결할 필요가 없습니다"컴파일 타임과 런타임 사이에 클래스의 버전을 변경하는 것은 완벽합니다. 또한 런타임에 정규화 된 이름에서 클래스를로드하는 것이 완벽하게 가능합니다. –

+0

동의하지만 원래 게시물 당이 기능이 작동하지 않습니다. 아직도 확실하지 않은 이유는 있지만, 컴파일 타임의 해결 방법이 효과가있어, 계속 진행하고 있습니다. 감사! – Turar