2010-06-04 7 views
2

Je suis en train d'exécuter le eBaySDK (Java) sous Windows, mais je continuais à obtenir l'erreur:comportement différent sur Windows et Linux - classpath dans build.xml (fichier ant) ​​

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

Maintenant, quand J'ai essayé d'exécuter le même exemple de code inclus dans le SDK eBay sur Linux (Ubuntu), il a parfaitement fonctionné. Sans aucun changement dans le code.


Alors, quand je me suis retourné dans le classpath du fichier build.xml dans mes fenêtres:

<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> 

Alors, j'ajouté jaxp dans le classpath:

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

Et cela a fonctionné comme un charme dans les fenêtres aussi.

Alors, pourquoi est-il une différence de comportement dans le fichier ANT quand je le lance sur Windows (où je devais ajouter JAXP dans le classpath) et sous Linux (où il travaille fichier wihtout JAXP dans le . classpath du fichier ANT)

Merci à


MISE à JOUR 1

versions Java:

Ubuntu - java6-soleil 1.6.0.20

Windows - java6-ibm

Mais est-ce que la matière? Si oui, alors comment?

+0

Quelles versions de Java utilisez-vous? Utilisez-vous la même version sur les deux systèmes? – Jesper

+0

merci pour la réponse, question mise à jour. – zengr

Répondre

3

Je pense que c'est juste une question de savoir comment ant a été empaqueté sur Ubuntu - la version d'Ant de Ubuntu est livrée avec Jaxp pré-installé (Ant a une dépendance sur libjaxp-java). Ainsi, jaxp est déjà sur le classpath.

Si vous installiez manuellement Ant à la place sur Ubuntu, je pense que vous trouveriez le même problème que Windows.

+0

Et l'ANT pour Windows n'a pas besoin de bibliothèques jaxb et il ne l'a pas? – zengr

+0

et je l'ai vérifié, il a besoin de libxerces2-java comme une dépendance. – zengr

Questions connexes