2009-10-02 9 views
3

J'utilise actuellement le serveur JerseyTest w/Grizzly pour tester du code. Je fais une configuration très simple pointer vers les ressources appropriées:Comment utiliser Grizzly Embedded Server pour Mule et Jersey

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); 

Cela fonctionne bien et les composants de Jersey sont disponibles et fonctionnent comme prévu.

J'essaie maintenant d'ajouter une fonctionnalité Mule à certains de ces appels Jersey, mais Mule n'est pas initialisé/configuré correctement par Grizzly. Quelqu'un at-il ce genre de configuration en cours d'exécution? Quelle configuration supplémentaire ai-je besoin de faire avec JerseyTest/GrizzlyWebServer pour l'initialiser correctement?

Répondre

1

Bien qu'il n'est pas idéal parce que l'instance mule ne peut pas utiliser Grizzly par défaut, j'ai pu obtenir ce travail en regardant fixement en mule séparément avec:

DefaultMuleContextFactory muleContextFactory = new DefaultMuleContextFactory(); 
    SpringXmlConfigurationBuilder configBuilder = new SpringXmlConfigurationBuilder("mule-config.xml"); 
    muleContext = muleContextFactory.createMuleContext(configBuilder); 
    muleContext.start(); 
1

Je ne sais pas ce que vous Essayez d'atteindre mais vous pouvez utiliser le connecteur Mule Jersey. Mule va gérer les requêtes HTTP (au lieu de Grizzly) et vous garderez le traitement de Jersey tel quel.

<service name="helloWorldResource"> 
     <inbound> 
      <inbound-endpoint address="jersey:http://localhost:63081/" synchronous="true"/> 
     </inbound> 
<component class="org.mule.transport.jersey.HelloWorldResource"/> 
</service> 

« s Guide + http://www.mulesoft.org/display/JERSEY/User