Pregunta

Tengo una aplicación de legado que estoy tratando de puerto para Java EE. Actualmente esta aplicación llama URL.setURLStreamHandlerFactory () para registrar algunos controladores de protocolo URL personalizado. Esta llamada falla bajo Glassfish v 2.1 y 3 porque glassfish ya ha registrado una fábrica.

He intentado usar la propiedad del sistema java.protocol.handler.pkgs, pero que no funciona para mí debido a problemas de cargador de clases. Las clases de controlador son parte de la aplicación y no estoy interesado en tratar de extraerlos y poner un frasco en la ruta de clase del contenedor.

Tengo una bocanada de paquetes OSGi - al parecer, podría escribir un paquete que va a hacer frente a los nuevos protocolos. No estoy interesado en hacer esta aplicación web un paquete OSGi (un paso a la vez! EE primero, y luego osgi en caso de necesidad).

¿Es posible hacer estallar un frasco bulto en mi WEB-INF / lib y tienen carga Glassfish como un paquete? El paquete tendrá que importar paquetes desde las aplicaciones web (otro frasco en WEB-INF / lib o en WEB-INF / classes). Estoy dispuesto a empaquetar esta aplicación como un EAR si eso funcionará, simplemente no puedo justificar osgifying toda la aplicación sin saber más.

¿Fue útil?

Solución

he resuelto mi problema. Al parecer, tuve algunos cables cruzados como la propiedad del sistema java.protocol.handler.pkgs funciona bien.

Para cualquier otra persona tropezar, me puso un frasco con mis manejadores en DOMAINDIR $ / lib ext así como en WEB-INF de mi directorio war / / / lib. En la configuración de mi solicitud También he puesto una opción de JVM -Djava.protocol.handler.pkgs = my.handlers.pkg.prefix

Me he dado cuenta en GlassFish 2.1 funciona sin la opción de JVM si pongo el prefijo a un código de inicio, pero en GlassFish 3 la opción JVM es necesario porque Felix (el glassfish aplicación OSGi está utilizando) sólo se consulta la propiedad cuando se inicie el servidor, no para cada solicitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top