вызывая исключение причала при использовании cusotm webdefault.xml

Я сталкиваюсь со следующим исключением, когда пытаюсь получить доступ к военному файлу, развернутому через http-адаптер. Для этого мы используем причал 6

java.lang.IllegalArgumentException: name
    at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:458)
    at sun.misc.URLClassPath.findResource(URLClassPath.java:145)
    at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
    at java.lang.ClassLoader.getResource(ClassLoader.java:978)
8.

Вот исключение

java.lang.IllegalArgumentException: name
    at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:458)
    at sun.misc.URLClassPath.findResource(URLClassPath.java:145)
    at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
    at java.lang.ClassLoader.getResource(ClassLoader.java:978)

Я видел в другом потоке, что для решения ExtractWar установлено значение true, но в моем случае я установил webAppContext.setExtractWAR(true);

Я не устанавливал в каком-то xml-файле, а непосредственно в java-коде. Даже тогда я сталкиваюсь с той же проблемой.

Когда я не использую пользовательский файл webdefault.xml, он работает нормально.

Пожалуйста помоги!


person user1931445    schedule 27.12.2012    source источник
comment
Можете ли вы опубликовать код Java, вы также используете 6.1.8 или 8.1.6? причал 6 древний.   -  person jesse mcconnell    schedule 27.12.2012
comment
мы используем причал 6.1.8, это большое приложение, в котором весь код разбросан по разным классам, поэтому публикация кода будет затруднена. а так же в линуксе все нормально работает и проблема только с виндой.   -  person user1931445    schedule 27.12.2012
comment
если это только окна, то мой голос за чувствительность к регистру в каком-то имени файла, возможно, в названии войны?   -  person jesse mcconnell    schedule 27.12.2012
comment
путь правильный, также возникает исключение в классе WebAppClassLoader причала _parent.getResource (имя). Это имя является путем к файлу webdefault.xml. В какой-то другой теме я видел аналогичную проблему, где они упомянули, что для решения проблемы установлено значение true для извлечения, но я тоже пробовал это, но не сработало. Разрешение вокруг этой области?   -  person user1931445    schedule 27.12.2012
comment
здесь очень мало что можно сказать, это исключение не указывает, какая часть причала пытается загрузить этот ресурс, или даже то, пытается ли он загрузить его. то, что он, по-видимому, правильно работает в Linux, указывает на оконность, которая обычно связана либо с блокировкой файлов, либо с нечувствительностью к регистру, отличительными чертами файловых систем Windows.   -  person jesse mcconnell    schedule 27.12.2012
comment
Проблема заключается в том, что при получении ресурса (пользовательский webdefault.xml), когда я не использую пользовательский webdefault.xml и использую предоставленный причалом webdefault.xml, он отлично работает даже в Windows. Итак, проблема связана с getResource(‹webdefault.xml path›). Я не уверен, почему он выдает недопустимое аргументисключение: имя. Что касается проблемы с блокировкой файлов, я попытался использовать useFileMappedBuffer=false в своем пользовательском файле webdefault.xml, что не решило проблему.   -  person user1931445    schedule 27.12.2012


Ответы (1)


http://www.docjar.com/html/api/sun/misc/URLClassPath.java.html

Похоже, это указывает на то, что это неправильная ссылка на путь к предоставленному webdefault.xml, разберитесь с этим, и вы должны быть в хорошей форме.

person jesse mcconnell    schedule 27.12.2012
comment
Я проверил этот путь, создав объект File, и увидел, что файл существует. - person user1931445; 27.12.2012
comment
как файл конечно, но как URL? это код в URLClassPath, который имеет проблемы. url = новый URL (база, ParseUtil.encodePath (имя, ложь)); - person jesse mcconnell; 27.12.2012
comment
Как это решить, я не понял, объясните, пожалуйста. - person user1931445; 28.12.2012
comment
это означает, что любой URL-адрес, входящий туда, недействителен, поэтому ужасное исключение «имя», выходящее из UrlClassPath - person jesse mcconnell; 28.12.2012
comment
ok Имя (E:\DEV_E\install_524_mssql_2008\install\noapp\etc\webdefault.xml) для Windows и /ais_local/share/alodha/52/gis_CATA_5241_18000/platform_core/install/noapp/etc/webdefault.xml для Linux. Обратите внимание, что это работает в Linux, но не для Windows. Вы имеете в виду, что имя для окон должно быть file://‹полный путь, как указано выше для окон›, чтобы сделать его действительным URL-адресом? - person user1931445; 28.12.2012
comment
вероятно, file:///E, но да, я подозреваю, что что-то не так с путями Windows - person jesse mcconnell; 28.12.2012