2010-01-10 3 views
0

JDBC를 사용하여 MySQL에 연결하는 자바 애플리케이션을 빌드합니다. 나는 log4j, junit, libshout-java 및 mysql jdbc 드라이버를 하나의 실행 가능한 jar 파일과 함께 코드를 컴파일하고 패키지화하는 개미 스크립트를 가지고있다. 이 모든 우분투 9.10에서 잘 작동하고, 내 코드는 MySQL에 연결하고 멀리 우리가 간다.솔라리스에서 MySQL jdbc로 jar 빌드하기

하지만 내 생산 환경은 solaris (내 devbox는 우분투)입니다. 빌드하고 실행하면 다음 오류가 발생합니다.

17 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig - [SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';] 
18 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig - this is able to be broken up[SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';] 
78 [main] ERROR com.radiobusi.ShoutGen - An error occured instantiating the class ShoutGen 
java.lang.ExceptionInInitializerError 
     at com.mysql.jdbc.Util.stackTraceToString(Util.java:351) 
     at com.mysql.jdbc.Util.<clinit>(Util.java:116) 
     at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:672) 
     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:277) 
     at java.sql.DriverManager.getConnection(DriverManager.java:582) 
     at java.sql.DriverManager.getConnection(DriverManager.java:185) 
     at com.radiobusi.ShoutGen.PlayList.<init>(Unknown Source) 
     at com.radiobusi.ShoutGen.ShoutGen.<init>(Unknown Source) 
     at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source) 
Caused by: java.lang.RuntimeException: Can't load resource bundle due to underlying exception java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU 
     at com.mysql.jdbc.Messages.<clinit>(Messages.java:60) 
     ... 9 more 
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU 
     at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521) 
     at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260) 
     at java.util.ResourceBundle.getBundle(ResourceBundle.java:715) 
     at com.mysql.jdbc.Messages.<clinit>(Messages.java:58) 
     ... 9 more 
Exception in thread "main" java.lang.NullPointerException 
     at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source) 

내 mysql 데이터베이스 로켈은 solaris에서는 en_US이지만 내 우분투 mysql 데이터베이스는 en_US입니다.

아무도 아이디어가 없습니까?

다른 정보가 필요한지 확실하지 않으므로 더 많은 정보를 원한다면 의견에 남겨주세요.

junit-4.8.1.jar 
libshout.jar 
log4j-1.2.15.jar 
mysql-5.1.6.jar 

[email protected]:~/ShoutGen-Java$ uname -a 
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris 

MySQL의 버전을 패키지로 얻을 항아리 : MySQL은 5.1.30

건배

마크

답변

0

내가이 놀랍게도, 사용자 오류 :

이유가 내 소스 코드 내 lib 디렉토리에서 어떤 MySQL의 JDBC를 제거하고 오픈 솔라리스와 함께 제공되는 MySQL의 JDBC 커넥터를 넣어 생각 (그것처럼 보인다 Sun Studio에서 제공)을 java의 lib/ext에 저장합니다. 내가 이것을 한 번 모두 일하는 것처럼 보였다. 더 자세히 살펴보면, 필자는 클래스 경로에 우분투 mysql JDBC 드라이버가 있고 아마도 크로스 플랫폼 jar 앞에있을 수도 있다고 생각합니다. 그래서 이것이 이것이 문제라고 생각합니다.

도움 주셔서 감사합니다.

마크.

0

오류는 말한다 : 그래서 그것을

Can't find bundle for base name com.mysql.jdbc..., locale en_AU 

현재 호주 로케일에서 실행중인 것 같습니다

로케일을 en_US로 전환하고 작동 여부를 먼저 확인해야합니다.

[편집] 또한 mysql 커넥터/드라이버가 저장된 경로에 잘못된 문자가 포함되지 않았는지 확인하십시오. 이 내용은 link을 참조하십시오.

+0

잘 내 우분투 상자에서 작동하고 로케일이 en_AU로 설정되어 있습니다. 그러나 나는 그것을 시험해보고 en_US 로케일에 대해 흥미롭게도 같은 메시지를 얻었습니다. 생각? –

+0

또한 mysql 커넥터가 저장된 경로에 잘못된 문자가 없는지 확인하십시오. 불법적 인 문자도 이러한 경우 큰 범인이 될 수 있습니다. 그것을 반영하기 위해 답을 업데이트했습니다. –

+0

jar에 대한 경로는/export/home/munderwo/ShoutGen-Java/lib입니다. 그래서 불법 문자를 볼 수 없습니다. 링크 및 도움 tho 주셔서 감사합니다. –

관련 문제