Cómo cargar recursos externos utilizando un URI de referencia en Java XML

Estoy tratando de extraer un nodo XML de una referencia de URI. Esta referencia de URI es generada por un firmante XAdES4j, y podría hacer referencia a un nodo dentro del mismo archivo XML o en la misma carpeta.

Esperaba que cargar la referencia fuera tan simple como

XMLSignatureInput referencedXML = ResourceResolver.resolveStatic(referenceNode.getAttributeNode("URI"), referenceDoc.getBaseURI());

Sin embargo, esto solo me da una NullPointerException sin ningún mensaje útil. Ambos argumentos no son nulos y, en un caso simple, el atributo URI era "data.xml" y el URI base de ReferenceDoc era "/Users/ryan/.../test-files/signature.xml. Data.xml reside en el mismo directorio de archivos de prueba.

El URI podría apuntar a un elemento dentro de un archivo, así que espero que haya un cargador de referencia que se ocupe de esa complejidad para mí. ¿Qué me he perdido?

editar:

La referencia que estoy intentando cargar es:

<ds:Reference Id="xmldsig-c6050e36-d9e7-46d9-ac5f-447d1bbb405f-ref0" URI="lote.xml" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
Respuesta 1

Puñalada total en la oscuridad (realmente necesitas pegar stacktraces ...), pero aquí va.

Eché un vistazo rápido a la fuente de ResourceResolver en: http://java2s.com/Open-Source/Java-Document/XML/xml-security-1.4.3/org/apache/xml/security/utils/resolver/ ResourceResolver.java.htm

Puedo ver que habrá una NullPointerException debido a un campo _resolverVector no inicializado en ResourceResolver, a menos que el método init () estático ya haya sido llamado en ResourceResolver. Sobre el método init (), hay un comentario:

The init() function is called by org.apache.xml.security.Init.init()

ResourceResolver en sí no parece activar esa llamada, ¿lo haces? Si no, deberías probarlo antes de usar cualquiera de las cosas org.apache.xml.security.

Respuesta: 2

¿Es posible filtrar y continuar emitiendo itens como a continuación? Mi código que llama al suscriptor 2 veces: Observable <Map.Entry <String, ArrayList <MockOverview> >> requestEntries = ...

Tengo un flujo de palabras y me gustaría ordenarlas según la aparición de los mismos elementos (= palabras). por ejemplo: {hola, mundo, hola} al Mapa <Cadena, Lista <String>> hola, {hola, ...

¿Hay alguna biblioteca de red C ++ similar a Netty de JBoss? Necesito una arquitectura donde pueda agregar controladores de protocolo a una lista y procesar paquetes de red como objetos.

He estado jugando con esta expresión regular en Java durante años y no puedo hacer que funcione: (?: ^ |) (?: the | and | at | in | or | on | off | all | next | under | sobre | siguiente) (?: | $) Lo siguiente: pattern.matcher ("el gato en el sombrero") ...