2014-09-09 2 views
0

Я довольно новый для Java, я только начал кодировать несколько недель назад, поэтому, пожалуйста, будьте терпеливы со мной :)Брус XML груза из той же папки класса

Я хочу, чтобы отправить XML файл через HTTP Post Request, и я могу полностью имитировать все, проблема в том, что я не создаю XML, но на самом деле имею XML, на том же уровне, что и мой класс, и я не могу его использовать, нет вопрос, что я делаю, какой путь я вставляю, я не могу загрузить файл.

пример: У меня есть класс caleld SendPostRequest.class, на той же директории, я имею details.xml, я пытаюсь:

getClass().getResource("details.xml"); // returns null 

Я перепробовал все другие комбинации, с полным path, или patfrom путь, который я получаю через System.getProperty("user.dir"); , и ничего, он просто не загрузит.

Я уверен, что мне не хватает чего-то очень глупого, я использую Intellij, есть ли ярлык для этого? для начала, я просто хочу загрузить xml в строку, просто распечатать его, чтобы увидеть его работу ...

большое спасибо!

+1

Является ли ваше приложение самим веб-приложением? (Например, работает на Tomcat или JBoss или Glassfish?) Иногда также среда разработки IDE играет хаос с 'getResouce()', и вам нужно упаковать свою программу в Jar-файл, чтобы она работала правильно. – markspace

+0

nope, нет приложения, просто класс и XML, я просто пытаюсь использовать материал для дальнейшей работы. Да, я угадываю его somethign с папкой, в которой я вхожу, место, в которое нужно положить, но я пробовал каждый сценарий – user967591

+0

, вы проверяли, действительно ли xml-файл ** в ./build/classes/ com/abc/details.xml или в созданной банке? Содержимое папки SRC может отличаться (рядом с .java/.class) из папки BUILD и сгенерировано JAR – Ben

ответ

1

Возможно, вы строите с Maven? Причина, по которой я спрашиваю, состоит в том, что у меня недавно была такая же странная проблема, я просто не мог загрузить файл .xml, потому что он не был включен в встроенную банку, но почему? Это должно быть ... Хм после небольшого поиска неисправностей я оказался в pom.xml, и выяснилось, что ресурсы с расширением файла *.xml не были включены в сборку.

<project> 
    ... 
    <build> 
    ... 
    <resources> 
     <resource> 
     ... 
     <includes> 
      <include>**/*.xml</include> 
     </includes> 
     </resource> 

After adding в extension file качестве в snippet above all was fine, file xml was built в jar и я could access в resource. Не знаю, действительно ли это относится к вам, но этот дерьмовый маленький включился, завалил пару часов для меня ...

+0

Спасибо !!!!!!! идеальный ответ :) – user967591

0

getClass().getResource() загружает ресурсы не из пути файловой системы, а из пути к классам. Убедитесь, что файл находится в пути к классам.

0

Если вы используете linux/unix, убедитесь, что ваше приложение java имеет права на чтение этого файла. Вы писали, что вы уже пробовали загрузить этот файл через полный путь?

Вы можете попробовать распечатать текущий рабочий каталог, как это:

public class Test 
{ 
    public static void main(final String[] args) 
    { 
     final String dir = System.getProperty("user.dir"); 
     System.out.println("current dir = " + dir); 
    } 
} 

А потом попробуйте добавить относительный путь к этой текущей директории для чтения в файле.

Смежные вопросы