Исходная прежняя совместимость Java 6 и SQL

Это детально.

, Если у Вас должен быть другой системный интерфейс с Вашими сервисами, чем много клиентов, будет более довольно SOAP, из-за слоев "проверки", которую Вы имеете с контрактами, WSDL и стандартом SOAP.

Для ежедневных систем, звонящих в системы, я думаю, что SOAP является большим количеством ненужных издержек, когда простой вызов HTML сделает.

9
задан notnoop 11 August 2009 в 16:43
поделиться

4 ответа

Я получил следующий ответ от разработчика Sun

Общая политика развития API в JDK для выпусков функций, таких как JDK 7,

  1. Не нарушайте двоичную совместимость (как определено в главе 13 JLSv3)
  2. Избегайте введения несовместимости источников
  3. Управляйте изменением поведенческой совместимости

(Для получения более подробной информации о различных видах совместимости см.

«Виды совместимости: Источник , Двоичный и поведенческий " а также «Совместимо развивающееся BigDecimal»

Добавление методов к интерфейсам является двоичным совместимым , но несовместимым с исходным кодом , поэтому обычно это не делается. Как правило, чем шире реализован интерфейс, тем меньше вероятность того, что мы добавим к нему методы. Область JDBC является исключением из этой политики и использует более гибкие правила обновления, но это действительно вызывает реальные проблемы, когда люди хотят перейти на новую версию JDK.

9
ответ дан 4 December 2019 в 13:49
поделиться

Обратите внимание, что добавление новых методов только нарушает совместимость исходного кода, уже скомпилированные реализации Statement или ResultSet в драйвере JDBC будут продолжать работать на более новой JDK. Только при попытке вызвать новый метод вы получите NoSuchMethodError .

4
ответ дан 4 December 2019 в 13:49
поделиться

Sun никогда не гарантирует совместимость исходного кода между выпусками, только двоичную совместимость. Наиболее распространенный пример - исходный код, содержащий идентификаторы assert или enum, не будет компилироваться под JDK 1.4 (для assert) или 1.5+ (для enum), но существующие файлы .class по-прежнему будут работать под этими новыми JVM.

Вы можете попробовать использовать флаг -source для компиляции старых файлов .java под более новыми JVM, но вы все равно можете столкнуться с проблемами, если полагаетесь на классы jvm, которые изменились.

1
ответ дан 4 December 2019 в 13:49
поделиться

Они, вероятно, предполагают, что поставщики драйверов баз данных, которые реализуют эти методы, постоянно обновляются с новыми средами выполнения Java, и что это лучше ввести новые полезные методы и временно нарушить совместимость.

Конечно, они могли бы спроектировать это лучше, чтобы не было необходимости нарушать совместимость…

1
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: