another thread'da açıklandığı gibi bir sınıf yolu protokolü için özel bir URL işleyicisi kaydettirmeyi denedim. İşte kod:Java - Özel URL protokolü işleyicileri kaydediliyor
package com.mycompany;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import com.mycompany.protocol.classpath.Handler;
public class ParserTest {
@Test
public void testParsing() throws MalformedURLException {
System.out.println(System.getProperty("java.protocol.handler.pkgs"));
//URL url = new URL(null, "classpath://com.mycompany/hello-world.xml", new Handler(ClassLoader.getSystemClassLoader()));
URL url = new URL("classpath://com.mycompany/hello-world.xml");
}
}
test durumu aşağıdaki JVM bağımsız değişkeni vardır: mülkiyet ayarlanırken bu yüzden System.out.println
çizgi düzgün, com.mycompany.protocol
çıkışı
-Djava.protocol.handler.pkgs=com.mycompany.protocol
. Ancak, yukarıdaki çağrının bir java.net.MalformedURLException: unknown protocol: classpath
istisnasını atacağı için, yürürlüğe girmemiş gibi görünüyor.
İşleyiciye yorumlanan satırdaki gibi açıkça izin verirseniz, her şey yolundadır. Ancak, bunu açıkça vermektense - otomatik olarak yapılmalıdır.
Neyi yanlış yapıyorum?
İşleyiciyi URL yapıcısına iletirseniz işe yarar mı? (Bu sadece bir hata ayıklama teklifi, nihai çözüm değil). –
Evet, ilk ifadeyi açıklarsam ve bunu kullanırsam çalışır. – Dario
Ah, pardon, tam olarak şu soruyu okumadı :-(. –