2008-10-10 10 views
5

En Eclipse (Ganimedes) estoy depurando algún código que utiliza Apache Commons HttpClient y me gustaría ingresar al código de HttpClient. Descargué el código fuente e intenté adjuntarlo de la forma habitual (presione CTRL y haga clic en el nombre del método y use el botón Adjuntar fuente). Intenté adjuntar ambos como archivo externo y carpeta externa sin éxito. He adjuntado la fuente antes sin problemas y actualmente puedo acceder al código fuente de Hibernate con éxito.Adjuntar problema de origen en Eclipse

Incluso he tratado de editar el archivo .classpath directamente para agregar sourcepath manualmente. Todavía sin suerte. Actualizar el proyecto, hacer una compilación limpia, cerrar y volver a abrir Eclipse no resuelve el problema. Frustrante, Eclipse no proporciona ningún mensaje de error; simplemente no conecta la fuente.

Estas son las entradas en .claspath:

<!-- Hibernate. Works --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/> 

<!-- Commons HttpClient. Will not attach --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/> 

He intentado cambiar la ruta de acceso a D: /Data/Download/commons-httpclient-3.1/src y que no funciona bien.

La estructura de directorios es:

D 
    Data 
    Download 
     commons-httpclient-3.1 
     src 
      java 
      org 
       apache 
       commons 
        httpclient 
        AutoCloseInputStream.java 
        ... (and so forth) 
+0

¿Se puede reformatear las entradas .classpath para que sean visibles (después del marcado)? –

Respuesta

6

Intente apuntarlo directamente a un directorio que contiene el paquete de nivel superior, "D: /Data/Download/commons-httpclient-3.1/src/java" para usted. Lo que funcionó para mí fue crear un nuevo archivo comprimido src que contiene la carpeta "org" y todo lo que hay debajo.

Aquí está mi entrada .classpath, (que funciona para mí) en caso de que ayuda:

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/> 
2

Intente conectar el src.zip en lugar de la src descomprimido?

+0

Intenté eso primero. Gracias. –

+0

¡Qué extraño! Buena suerte. – JeeBee

+0

Gracias, creo que podría intentar abrir el proyecto en Europa. –

2

Intente agregarlo a la ruta de origen de su configuración de inicio.

1

Adjuntar fuentes no es todo lo que se requiere para ingresar a una biblioteca en el classpath; esa biblioteca también debe compilarse con símbolos de depuración. Esto generalmente no es un problema, ya que la mayoría de las bibliotecas de Java se compilan y distribuyen de esa manera, pero como ha encontrado, algunas no lo son.

Es interesante observar que puede acceder a bibliotecas externas incluso sin la fuente adjunta, simplemente no puede ver las fuentes línea por línea (toda la información de depuración aún funciona).

Puede "solucionar" este problema compilando una versión personalizada de Commons HttpClient (no demasiado difícil), o simplemente saltee toda la idea del "paso a la biblioteca". Como práctica general de desarrollo, ingresar a bibliotecas de terceros rara vez arrojará información útil. Lo he hecho tal vez una o dos veces en los últimos diez años, y ninguna de las dos veces me acercó más a la solución del dilema que tenía entre manos.

4

que he encontrado que a veces, se señala al directorio que asumiría era correcta, y luego se todavía dice que no puede encontrar el archivo en la fuente adjunta, bla, bla.

En estas ocasiones, me he dado cuenta de que el último elemento de ruta era "src". Simplemente eliminando este elemento de ruta (de hecho, apuntando un nivel por encima de la ruta real donde se encuentra la carpeta "org" o "com") mágicamente hace que funcione.

De alguna manera, Eclipse parece implicar este elemento de ruta "src" si está presente, y si luego lo tiene incluido en la ruta de origen, Eclipse se ahoga. O algo así.

1

Creo que, problema en el espacio (o localizado) símbolos en el camino al archivo de origen. Intenta moverlo a otro lugar con un camino simple.

Cuestiones relacionadas