Pergunta

Em Eclipse (Ganimedes) Estou a depuração algum código que usa Apache Commons HttpClient e gostaria de passo para o código HttpClient. Eu fiz o download do código-fonte e tentou anexá-lo na forma normal (CTRL + clique sobre o nome do método e use o botão Anexar Fonte). Eu tentei anexar tanto como arquivo externo e pasta externa sem sucesso. Anexei fonte antes sem problemas e pode actualmente passo no código-fonte Hibernate com sucesso.

Eu até tentei editar o arquivo .classpath diretamente para adicionar sourcepath manualmente. Ainda sem sorte. Atualizando o projeto, fazendo uma compilação limpa, fechamento e reabertura Eclipse não resolvem o problema. Frustrantemente, Eclipse não fornece nenhuma mensagem de erro; ele simplesmente não ligar a fonte.

Aqui estão as entradas no .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"/>

Eu tentei mudar o caminho para D:. /Data/Download/commons-httpclient-3.1/src e que não quer trabalhar

A estrutura de diretório é:

D
  Data
    Download
      commons-httpclient-3.1
        src
          java
            org
              apache
                commons
                  httpclient
                    AutoCloseInputStream.java
                    ... (and so forth)
Foi útil?

Solução

Tente apontando-o para um diretório que contém o pacote de nível superior diretamente, "D: /Data/Download/commons-httpclient-3.1/src/java" para você. O que funcionou para mim foi a criação de um novo arquivo src zip que contém a pasta "org" e tudo abaixo dela.

Aqui está a minha entrada .classpath, (que funciona para mim) no caso de ajuda:

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

Outras dicas

Descobri que às vezes, você apontar para o diretório que você diria que foi correta, e então ele ainda afirma que não pode encontrar o arquivo no blah blah fonte ligada.

Estes tempos, eu percebi que o último elemento caminho era "src". Apenas remover este elemento caminho (assim, na verdade, apontando um nível acima o caminho real onde o "org" ou pasta "com" está localizado) magicamente faz funcionar.

De alguma forma, Eclipse parece implicar este "src" elemento de caminho se presente, e se você, em seguida, tê-lo incluído no caminho de origem, bobinas Eclipse. Ou algo parecido.

Tente montar a src.zip vez do src descompactado?

Tente adicioná-lo para o caminho de origem da configuração do seu lançamento.

Anexar fontes não é tudo o que é necessário para a etapa em uma biblioteca no classpath; essa biblioteca também deve ser compilado com símbolos de depuração. Isso geralmente não é um problema, já que a maioria das bibliotecas Java são compilados e distribuídos de forma tão um, mas como você ter encontrado, alguns deles não são.

É interessante notar que você pode realmente passo para bibliotecas externas, mesmo sem a fonte ligada, você simplesmente não pode ver as fontes de linha por linha (todas as informações de depuração ainda funciona).

Você poderia "consertar" este problema através da compilação de uma versão personalizada do Commons HttpClient (não muito difícil), ou simplesmente ignorar o "passo para a biblioteca" Toda idéia. Como uma prática geral de desenvolvimento, entrando em bibliotecas de terceiros raramente deu informações úteis. Já fiz isso uma ou duas vezes nos últimos anos dez, nem o tempo que ele realmente me trazer qualquer mais perto de resolver o dilema em mãos.

Eu acho que, problema no espaço (ou localizadas) símbolos no caminho para arquivo fonte. Tente movê-lo para outro lugar com caminho simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top