Различное поведение в Windows и Linux - путь к классам в build.xml (файл ant) - PullRequest
2 голосов
/ 05 июня 2010

Я пытаюсь запустить eBaySDK (Java) в Windows, но получаю сообщение об ошибке:

com.ebay.sdk.SdkException: com.sun.org.apache.xerces.internal.dom.DocumentImpl

Теперь, когда я попытался запустить тот же пример кода, который включен в eBay SDK для Linux (ubuntu), он работал отлично. Без каких-либо изменений в коде.


Итак, когда я оглянулся на путь к классу файла build.xml в моих окнах:

  <property name="jaxws.lib.home" value="${basedir}/../../externalLib/jaxws-ri-2.1.4/"/>
  <property name="apache.lib.home" value="${basedir}/../../externalLib/apache"/>
  <property name="dest" value="classes.ant"/>
  <property name="ebaysdklib.home" value="../../lib"/>
  <property name="src" value="src"/>
    <path id="run.classpath">
          <pathelement location="${jdk.home}/lib/tools.jar"/>
          <pathelement path="${dest}"/>
          <fileset dir="${jaxws.lib.home}">
              <include name="*.jar"/>            
          </fileset>
          <fileset dir="${apache.lib.home}">
            <include name="*.jar"/>            
          </fileset>
          <fileset dir="${ebaysdklib.home}">
            <include name="*.jar"/>
          </fileset>    
    </path>

Итак, я добавил jaxp в classpath:

  <property name="jaxp.lib.home" value="${basedir}/../../externalLib/jaxp-1.4.2"/>
   ...............
   <fileset dir="${jaxp.lib.home}">
   <include name="*.jar"/>
   </fileset>

И это работало как очарование в окнах тоже.

Итак, почему существует разница в поведении файла ANT, когда я запускаю его в Windows (где мне пришлось добавить JAXP в пути к классам) и в Linux (где это работает файл без JAXP в пути к классу файла ANT.)

Спасибо


ОБНОВЛЕНИЕ 1

Версии Java:

Ubuntu - java-6-sun-1.6.0.20

Windows - java6-ibm

Но имеет ли это значение? если да, то как?

1 Ответ

3 голосов
/ 05 июня 2010

Я думаю, что это просто вопрос того, как ant был упакован в Ubuntu - версия Ant для Ubuntu поставляется с предустановленной Jaxp (ant имеет зависимость от libjaxp-java). Итак, jaxp уже находится на пути к классам.

Если бы вы установили ant вместо Ubuntu вручную, я думаю, вы найдете ту же проблему, что и в Windows.

...