Estoy usando la biblioteca de Apache web service xml rpc para realizar solicitudes a un servicio rpc. En algún lugar de ese proceso hay un documento xml con una referencia DTD al http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd, que la biblioteca intenta descargar al analizar el XML. Esa descarga falla con un código de estado 503 porque el w3c está bloqueando las descargas repetidas de este documento en gran medida estático de los clientes de Java.Uso de un catálogo XML con una biblioteca Java que utiliza JAXP internamente
La solución es XML Catalogs para almacenar en caché localmente la DTD. Sin embargo, aunque puedo encontrar ejemplos de cómo configurar EntityHandler en una instancia de JAXP SAXParser directamente para habilitar el soporte del analizador de catálogos, en realidad no tengo acceso al analizador subyacente aquí. Simplemente está siendo utilizado por la biblioteca xml rpc. ¿Hay alguna manera de establecer una propiedad global o algo que le diga a JAXP que use catálogos XML?
que había visto ese artículo y que ya ha intentado integrar xml-resolver en mi proyecto. El problema es que la propiedad del sistema xml.catalog.files solo tiene efecto una vez que haya instalado XML Resolver como resolución de entidad en su instancia de lector JAXP. Mi problema es que no tengo acceso a la instancia del lector JAXP utilizada internamente por la biblioteca del servicio web. –
Si configura esa propiedad en la línea de comando al iniciar el programa, ¿no es "vista" por la fábrica del analizador? –