Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

FAQ IDL Java

Это - документ, который пытается ответить на многие из вопросов, которые Вы можете иметь об использовании технологии IDL Java.

Ошибки

Функции

Совместимость/Функциональная совместимость

Общий

Ошибки

Почему делают я получаю это сообщение, когда я пытаюсь выполнить HelloServer: "Исключение в потоке "основной" java.lang. NoClassDefFoundError: HelloServer/java"

Наиболее распространенная причина этой ошибки, выполняя HelloServer (и также HelloClient) из учебного руководства по IDL Java состоит в том, что HelloServer не находится в пути к классу. Для получения дополнительной информации по установке переменной пути к классу см. Установку пути class.

Вторая наиболее распространенная причина происходит, когда пространство добавляется между кавычками в следующей строке кода:

NameComponent nc = new NameComponent("Hello", "");

Между кавычками не должно быть никаких пробелов. Без пробелов это значение передают как нуль. С пространством между расценками передают пробел.

Мои существующие программы не выполняют использование этого выпуска. Есть ли какие-либо проблемы совместимости, которые могли влиять на это?

Информация о совместимости между J2SE 1.4.x и J2SE 5.0 может быть найдена в информации о Совместимости CORBA - J2SE 5.0.

Почему я не могу соединить IOR's использования от сервера Linux, когда IOR содержит 127.0.0.0 как адрес узла?

На Red Hat установки Linux InetAddress.getLocalHost() может возвратить InetAddress, соответствующий петлевому адресу (127.0.0.1). Это возникает, потому что установка значения по умолчанию создает ассоциацию в /etc/hosts между именем узла машины и петлевым адресом. Чтобы гарантировать, что InetAddress.getLocalHost() возвращает фактический адрес узла, обновите файл /etc/hosts или конфигурационный файл службы имен (/etc/nsswitch.conf), чтобы запросить dns или Нис прежде, чем искать узлы.

Что этот младший кодирует среднее значение?

Новые версии стандарта (OMG) незначительные исключения кода могут быть найдены на Веб-сайте OMG в http://www.omg.org/.

Часть наиболее распространенного Sun незначительные исключения кода является следующим:

Могу я добавлять многократные пути к классам, запуская использование сервера servertool?

Более длинная версия этого вопроса была следующие: Мой серверный код нуждается в многократных файлах JAR в пути к классу. Когда я регистрирую свой сервер, используя servertool, и попытайтесь определить путь к классу, я получаю синтаксис register команда. Я предполагаю, что моя командная строка превышает предел.

Как делают я определяю действительно долгий путь к классу, регистрируя сервер в servertool?

servertool действительно принимает многократные файлы JAR, однако, есть в настоящий момент ошибка с длиной буфера командной строки в servertool. Читайте больше о servertool ошибка обертки, 4482166.

Обходное решение должно вызвать ServerTool class, чтобы запустить сервер, вместо того, чтобы запустить сервер изнутри servertool, такой как:

${JAVA_HOME}/bin/java com.sun.corba.se.internal.Activation.ServerTool 
-ORBInitialPort ${ORB_INITIAL_PORT} -cmd register -server 
sample.MyServer -classpath jar1:jar2:jar3 -applicationName sample

Пожалуйста, отметьте что имя servertool class может измениться в будущих выпусках.

Что делает я делаю когда служба именования (tnameserv, orbd) сбои, чтобы работать на платформе Linux?

Если служба именования не в состоянии запуститься на Linux, включайте следующие строки в /etc/hosts файл:
<Local Host IP Address>   localhost
<Local Host IP Address>   <HostName>

где <Локальным IP-адресом Узла> является IP-адрес где служба именования (tnameserv, orbd) запускается.

Функции

Что модель потока поддерживается реализацией CORBA в этом выпуске?

Java ШАР CORBA, поставленный в Java SE, является многопоточным. На стороне сервера у нас есть пул потоков так, что, каждый входящий запрос обрабатывается отдельным потоком. Если потоки всего пула используются, когда новый запрос входит, новый поток создается и добавляется к пулу. Поток возвращается к пулу после того, как запрос заканчивается. Java ШАР CORBA является поточным, чтобы позволить масштабируемость и параллельную обработку запросов. Опция SINGLE_THREAD для POA поточная обработка политики не поддерживается. Модель потоков для Java ШАР CORBA неявна: пользователь не устанавливает политику потока для ШАРА. Нет никаких внешних, API на уровне пользователя, представленных для того, чтобы управлять моделью потоков или числом потоков.

IDL Java содержит службы уведомления/события? Репозитарий Интерфейса?

Нет, это не делает. Если Вы нуждаетесь в одной из этих служб, можно реализовать один, можно купить один с полки, или можно искать одно в свободном доступе, чтобы начать вещи с. Вы можете сменные 3-ьи службы стороны, такие как они к ШАРУ, используя технологию INS.

Как я могу выполнить Привет Мировой пример на двух машинах?

Вы должны использовать опцию -ORBInitialHost <Host Name where Name Service is Launched>, запуская клиент и/или сервер (какой бы ни не работает на той же самой машине как сервер имени). Этим путем клиент и сервер знает, где найти службу имен. Пример может быть найден в IDL Java: "Привет Мировой" Пример на Двух Машинах.

Действительно ли технология IDL Java совместима со спецификациями CORBA?

Для информации о соответствии для технологии CORBA, поставленной с J2SE 5.0, считайте оператор соответствия CORBA в Официальных Спецификациях для поддержки CORBA в J2SE 5.0.

Совместимость/Функциональная совместимость

С которыми спецификациями CORBA делает J2SE 5.0, подчиняются?

См. Официальные Спецификации для поддержки CORBA в J2SE 5.0.

Как я могу определить различный ШАР?

Чтобы использовать ШАР кроме Java ШАР CORBA в Вашем приложении, можно установить свойство org.omg.CORBA.ORBClass в ШАР Вашего выбора. Например, используйте код как показано в примере, чтобы явно установить ШАР в РЕАЛИЗАЦИЮ ШАРА, которую Вы предпочли бы использовать:
public class MyApp {

    public static void main( String args[] ) {
        Properties properties = System.getProperties();
        properties.put( "org.omg.CORBA.ORBClass",
            "<com.other_company.package.ORB>" );
        
        try {
             ORB orb = ORB.init( args, properties);
             
             ...

Проверьте документацию поставщика на информацию об установке свойств, определенных для их реализации ШАРА.

Как я могу протестировать, может ли мой Клиент ШАРА JDK связаться с реализацией ШАРА другой компании?

Этот ШАР был протестирован как часть аттестации J2EE, однако, это не было протестировано с автономными ШАРАМИ всего поставщика CORBA.

Если INS поддерживается в службе другого поставщика, то, попробуйте это. Преобразуйте Взаимодействующие Ссылки на объект (см. ID Java: Взаимодействующий Пример Службы Именования) на сервере ШАРА другого поставщика к строке, используя метод ORB.object_to_string(), используя INS. Запишите что строка в файл.

У Вас есть какие-либо примеры, которые используют клиент CORBA и серверное приложение EJB?

Руководство разработчика, которое включает приложение в качестве примера с клиентом C++ и Предприятием компонент JavaBeans, может быть найдено на Веб-сайте в: Предприятие Компоненты JavaBeans™ и Клиенты CORBA: Руководство разработчика.

Как я соединяюсь со Службой Именования 3-ьей стороны от ШАРА Sun?

Рекомендуемый путь состоит в том, чтобы использовать IDL Java: Взаимодействующая Служба Именования (INS) Пример, если эта опция поддерживается Службой Именования 3-ьей стороны.

Использовать ШАР Sun со Службой Именования другого поставщика,

  1. Запустите сервер имени 3-ьей стороны на Узле <H> и Порт. <P>
  2. Передайте следующий параметр ORB.init():
            -ORBInitRef NameService=corbaloc:iiop:1.2@:/NameService
       
    

Когда Вы делаете orb.resolve_initial_references( "NameService" ), следует быть в состоянии соединиться со службой имен 3-ьей стороны. Если Вы все еще не в состоянии соединиться, попробуйте эти подсказки поиска и устранения неисправностей:

Я могу использовать ШАР IDL Java с C++ сервер CORBA? (функциональная совместимость)

ШАРОМ IDL Java является ШАР полностью записанная технология Java использования. Компилятор idlj генерирует код, который следует за соглашениями, определенными в IDL к Спецификации Отображения Языка Java. ШАР Java не обеспечивает компилятор, который генерирует код на любых языках кроме платформы Java. Если Вы будете хотеть протестировать функциональную совместимость между ШАРОМ Java и ШАРОМ, записанным на другом языке (таком как C++), то Вы должны будете счесть ШАР записанным на том языке и компиляторе, который соответствует определенному отображению языка. Спецификации отображения языка доступны от Веб-сайта Группы по управлению объектами в http://www.omg.org/. Пользователь, который хочет использовать платформу Java на одной стороне и C++ на другом, только совместно использует IDL. Необходимо использовать свои инструменты ШАРА C++, чтобы генерировать тупики и скелеты для использования с ШАРОМ C++, но Вы не должны изменить IDL вообще. Чтобы найти поставщика, который обеспечивает ШАР CORBA и компилятор отображения языка на языке, с которым Вы работаете, ищите Сеть "C++ ШАР CORBA", или эквивалентный.

Руководство разработчика, которое включает приложение в качестве примера с клиентом C++ и Предприятием компонент JavaBeans, может быть найдено на Веб-сайте в: Предприятие Компоненты JavaBeans™ и Клиенты CORBA: Руководство разработчика.

Хотя это - истина, что ШАРЫ, записанные на различных языках, должны быть в состоянии говорить с друг другом, мы не протестировали функциональную совместимость ШАРА Java с ШАРАМИ другого поставщика.

Общий

Я должен использовать IDL Java или технологию IIOP RMI Java?

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

Технология IDL Java для программистов CORBA, которые хотят программировать в языке программирования Java, основанном на интерфейсах, определенных в Языке определения интерфейсов CORBA (IDL). Это - "обычный бизнес" программирование CORBA, поддерживая Java точно таким же образом как другие языки как C++ или КОБОЛ.

Удаленный Вызов метода Java по интернет-Протоколу Межшара ("IIOP RMI"), который технология для программистов Java, которые хотят программировать к Java Удаленный Вызов метода ("Java RMI") интерфейсы, но IIOP использования как базовый транспорт. IIOP RMI предоставляет функциональной совместимости другие объекты CORBA, реализованные на различных языках - но только если все удаленные интерфейсы первоначально определяются как Java интерфейсы RMI. Это особенно интересно к Предприятию использования программистов JavaBeans™ (EJB™) технология, так как модель удаленного объекта EJB основана на Java технология RMI.

Где я могу загрузить idltojava компилятор?

idltojava компилятор больше не доступен для скачивания. Мы настоятельно рекомендуем, чтобы Вы использовали последнюю версию компилятора IDL к Java, idlj.

Чтобы получить последнюю версию компилятора IDL к Java, загрузите последнюю версию Платформы Java™, Standard Edition (Java SE). Когда Java, SE устанавливается, idlj, будет расположен в каталоге bin.

Другая информация о поиске и устранении неисправностей, связанная с idltojava, располагается в FAQ IDL Java для J2SE v.1.3.

Каковы мои опции для того, чтобы разработать приложения CORBA, используя технологию Java?

Технология CORBA как часть Java 2 платформы состоит из Посредника запросов к объектам (ШАР), записанный на языке Java (с маленьким битом собственного кода), модель программирования RMI, и модель программирования IDL. "Волшебство", которое дает нам межъязыковую, функциональную совместимость перекрестного поставщика, является Интернетом Протокол InterORB, или IIOP. IIOP может быть транспортным протоколом для распределенных приложений, записанных или в IDL или в Java RMI. IIOP позволяет распределенным объектам соответствовать спецификации OMG CORBA. При использовании модели программирования IDL интерфейс - все! Это определяет точки записи, которую можно вызвать от удаленного процесса, такого как типы параметров, которые вызванная процедура примет, или параметр значения/вывода возвращенной информации. Используя IDL, программист может сделать точки входа и типы данных, которые передают между действием коммуникационных процессов как стандартный язык. CORBA является нейтральной языком системой, в которой значения аргументов или возвращаемые значения ограничиваются тем, что может быть представлено на включенных языках реализации. В CORBA объектная ориентация ограничивается только объектами, которые может передать ссылка (сам объектный код нельзя передать от от машины к машине), или предопределяются в полной платформе. Переданные и возвращенные типы должны быть объявленными в интерфейсе. С RMI IDL и язык реализации являются той же самой вещью, таким образом, Вы не должны волноваться об отображении от одного до другого. Объекты на уровне языка (код непосредственно) можно передать от одного процесса до следующего. Значения могут быть возвращены их фактическим типом, не объявленным типом. Или, можно скомпилировать интерфейсы, чтобы генерировать совместимые IIOP тупики и скелеты, чтобы говорить с объектами, записанными на других машинах на других CORBA-совместимых языках.

Каково различие между IDL Java и IIOP RMI Java?

Это - фундаментальный вопрос, и важно понять различие между этими двумя способами интегрировать язык программирования Java с CORBA. IDL Java для программистов CORBA, которые хотят программировать в языке программирования Java, основанном на интерфейсах, определенных в Языке определения интерфейсов CORBA (IDL). Это - "обычный бизнес" программирование CORBA, поддерживая язык Java точно таким же образом как другие языки как C++ или КОБОЛ. IIOP RMI Java (Удаленный Вызов метода по интернет-Протоколу Межшара) для разработчиков, которые хотят использовать язык программирования Java для программы к Java интерфейсы RMI, но IIOP использования как базовый транспорт. IIOP RMI Java предоставляет функциональной совместимости другие объекты CORBA, реализованные на различных языках - но только если все удаленные интерфейсы первоначально определяются как Java интерфейсы RMI. Это особенно интересно к Предприятию использования программистов JavaBeans (EJB), так как модель удаленного объекта для EJB's основана на RMI. Есть несколько сценариев, которые определят, как Вы будете хотеть создать распределенные приложения CORBA. Вот некоторые из них:

Каковы ограничения при использовании IDL Java и/или IIOP RMI Java?

Для получения дополнительной информации по ограничениям продукта считайте Ограничения.

Каковы стандартные теги для...?

Новые версии стандартных файлов выделения тега могут быть найдены на Веб-сайте OMG: http://www.omg.org/.

Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами