Java应用程序适用于Mac但不适用于Windows

时间:2011-11-04 15:34:57

标签: java database windows macos

我正在寻找可以帮助我解决目前问题的任何想法。我继承了一个JAVA应用程序,它读取Excel文件,创建一个包含SQL代码的文本文件,并连接到Sybase DB进行更新。它使用SweetDEV作为db连接器,它在Mac上运行完美。

问题是它无法连接到Windows上的数据库,报告提供的用户名和密码不正确。这是不正确的,因为它们与它在Mac上使用的相同并且有效。我已经尝试使用另一个应用程序使用这一对连接到Sybase DB,但它确实有效。

我使用IP而不是别名连接到服务器 - 我也尝试使用别名,但它没有用。

我已经google了,我提出了一个线程,建议问题可以与所使用的编码相关联,并且建议将此问题添加到连接字符串:“?charset = iso_1”。从一开始就已经存在了。所以这不是编码问题。

我创建了一个连接到数据库并使用另一个驱动程序(com.sybase.jdbc3.jdbc.SybDriver)检索服务器元数据的简单类,它可以正常工作。我真的不想重做整个应用程序而且我很困惑为什么它在一个操作系统上工作而不是另一个操作系统。

如果有人知道可能导致这种情况的原因,请分享。我对这一切感到非常困惑,但我已经没有想法了。

提前致谢,

若昂

PS:这是它返回的错误 - 我再次知道它不是用户名/ pw问题,因为我能够使用它们进行连接。

[10/4/2011 16:29:37] com.ideo.sweetdev.core.service.ServiceManager INFO The service [CONFIGXML_SERVICE] with class name [com.ideo.sweetdev.data.service.configxml.ConfigXmlService] was successfully registered.
[10/4/2011 16:29:37] com.ideo.sweetdev.core.service.ServiceManager INFO The service [QUERYCALLER_SERVICE] with class name [com.ideo.sweetdev.data.service.datacaller.querycaller.QueryCallerService] was successfully registered.
[10/4/2011 16:29:37] com.ideo.sweetdev.data.service.datasource.DataSourceService ERROR An error append while initializing the DataSource.com.ideo.sweetdev.core.exception.TechnicalException: An error append while initializing the DataSource.
at com.ideo.sweetdev.data.service.datasource.DataSourceService.initDataSource(DataSourceService.java:437)
at com.ideo.sweetdev.data.service.datasource.DataSourceService.retrievePool(DataSourceService.java:218)
at com.ideo.sweetdev.data.service.datasource.DataSourceService.configure(DataSourceService.java:174)
at com.ideo.sweetdev.core.service.ServiceManager.instantiateService(ServiceManager.java:424)
at com.ideo.sweetdev.core.service.ServiceManager.getServiceByName(ServiceManager.java:508)
at com.ideo.sweetdev.core.service.ServiceManager.getService(ServiceManager.java:285)
at com.ideo.sweetdev.data.service.datasource.DataSourceHelper.getDBService(DataSourceHelper.java:41)
at com.ideo.sweetdev.data.service.datacaller.querycaller.QueryCallerService.getQueryCaller(QueryCallerService.java:108)
at com.ideo.sweetdev.data.service.datacaller.querycaller.QueryCallerService.getQueryCaller(QueryCallerService.java:133)
at com.ideo.sweetdev.data.service.datacaller.querycaller.QueryCallerHelper.getQueryCaller(QueryCallerHelper.java:59)
at connexionSQL.ExecutionFichierRequetes.<init>(ExecutionFichierRequetes.java:41)
at interfaces.ChoixEnvironnements$3.run(ChoixEnvironnements.java:149)
java.sql.SQLException: JZ00L: Echec de la connexion. Examinez les SQLWarnings associ?es ? cette exception pour la ou les raisons suivantes :
at com.sybase.jdbc3.jdbc.ErrorMessage.raiseError(Unknown Source)

...

2 个答案:

答案 0 :(得分:0)

可能是类路径问题吗?在Linux / MacOS上,类路径的定义略有不同,例如

java -cp jar1.jar:jar2.jar:

在Windows上,冒号变为分号。

java -cp jar1.jar;jar2.jar;

这可能是问题吗?

或者,您可以通过工具窃听连接吗? Wireshark的?只是为了比较你的java应用程序在一个案例和另一个案例中发送的内容?

你也可以在MacOS(优秀的操作系统)中运行并指向Windows中的数据库吗?

答案 1 :(得分:0)

您是否通过设置由纯ASCII组成的用户和密码来尝试测试?因此确实排除了编码问题。 (不幸的是编码发生在几个层上。)

抱歉,您已将其排除在外。

错误的数据库/方案名称?不太可能。

为SybDriver使用详细选项?