Java-приложение работает на Mac, но не на Windows - PullRequest
0 голосов
/ 04 ноября 2011

Я ищу любую идею, которая могла бы помочь мне решить проблему, которая у меня есть в данный момент.Я унаследовал приложение JAVA, которое читает файл Excel, создает текстовый файл, содержащий код SQL, и подключается к базе данных Sybase для ее обновления.Он использует SweetDEV в качестве разъема дБ и отлично работает на Mac.

Проблема в том, что он не может подключиться к БД в Windows, сообщая, что введенные имя пользователя и пароль неверны.Что не соответствует действительности, поскольку они одинаковые, которые он использует на Mac, и это работает.Я попытался использовать другое приложение для подключения к Sybase DB, используя эту пару, и это сработало.

Я подключаюсь к серверу, используя его IP, а не псевдоним. Я также пытался использовать псевдоним, но он не работал.

Я гуглил и наткнулся на поток, в котором предполагалось, что проблема может быть связана с используемой кодировкой, и в качестве решения было предложено добавить это в строку подключения: "? Charset = iso_1".Который уже был на месте с самого начала.Так что это не проблема кодирования.

Я создал простой класс, который подключается к БД и получает метаданные сервера, используя другой драйвер (com.sybase.jdbc3.jdbc.SybDriver), и он работает.Я действительно не хочу переделывать все приложение, и я озадачен, почему оно работает на одной ОС, а не на другой.

Если у кого-то есть идеи, что может быть причиной этого, пожалуйста, поделитесь.Я полностью сбит с толку всем этим, и у меня закончились идеи.

Заранее спасибо,

João

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 голосов
/ 04 ноября 2011

Вы пробовали тестирование, установив пользователя и пароль, состоящий из простого ASCII?Так что проблема кодирования действительно исключена.(К сожалению, кодирование происходит на нескольких уровнях.)

Извините, вы уже это исключили.

Неправильное имя базы данных / схемы?Маловероятно.

Использование подробного параметра для SybDriver?

0 голосов
/ 04 ноября 2011

Может ли быть проблема с classpath?В Linux / MacOS пути к классам определяются немного по-другому, например:

java -cp jar1.jar:jar2.jar:

В Windows двоеточие становится точкой с запятой.

java -cp jar1.jar;jar2.jar;

Возможно, это проблема?

В качестве альтернативы, вы можете прослушать соединение с помощью инструмента, например wireshark?Просто для сравнения того, что ваше приложение Java отправляет в одном случае, а в другом?

Также можете ли вы запустить в MacOS (хорошая ОС) и указать на БД в Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...