Cómo utilizar Grizzly Embedded Server para tirados por mulas y Jersey
Pregunta
Actualmente estoy usando JerseyTest w / servidor Grizzly incorporado para probar algo de código. Hago un poco de configuración muy sencillo para apuntar a los recursos adecuados:
Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "com.sample.service");
ApplicationDescriptor appDescriptor = new ApplicationDescriptor();
appDescriptor.setServletInitParams(initParams);
super.setupTestEnvironment(appDescriptor);
Esto funciona muy bien y los componentes Jersey están disponibles y funcionan como se espera.
Ahora estoy tratando de añadir algunas funciones de la mula a algunas de estas llamadas Jersey, pero la mula no está siendo inicializado correctamente / configurado por Grizzly. Alguien ha conseguido este tipo de configuración en ejecución? ¿Qué configuración adicional necesito que ver con JerseyTest / GrizzlyWebServer conseguirlo para inicializar correctamente mula?
Solución
Si bien no es ideal porque la instancia mula no es capaz de utilizar grisáceo por defecto, yo era capaz de conseguir este trabajo mirando hacia arriba por la mula por separado con:
DefaultMuleContextFactory muleContextFactory = new DefaultMuleContextFactory();
SpringXmlConfigurationBuilder configBuilder = new SpringXmlConfigurationBuilder("mule-config.xml");
muleContext = muleContextFactory.createMuleContext(configBuilder);
muleContext.start();
Otros consejos
No estoy seguro de lo que estamos tratando de lograr, pero se puede utilizar el conector de la mula Jersey. Mula se encargará de las peticiones HTTP (en lugar de Grizzly) y usted mantener el procesamiento Jersey como es.
<service name="helloWorldResource">
<inbound>
<inbound-endpoint address="jersey:http://localhost:63081/" synchronous="true"/>
</inbound>
<component class="org.mule.transport.jersey.HelloWorldResource"/>
</service>