Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

79
Views
Publicación del servicio de descanso de Jersey basado en Spring Profile

¿Es posible publicar el servicio de descanso de la camiseta según el perfil de la primavera? digamos como siguiente ejemplo, ¿cómo puedo publicar RegisterServices1 cuando uso profile1 ?

 public class ApiGWRestApplicationConfig extends ResourceConfig { public ApiGWRestApplicationConfig() { register(RegisterServicesApiGWInterface.class); } } @Service @Profile("profile1") @Path(SystemConstants.REST_REGISTER) public class RegisterServices1 implements RegisterServicesApiGWInterface {

}

 @Service @Profile("profile2") @Path(SystemConstants.REST_REGISTER) public class RegisterServices2 implements RegisterServicesApiGWInterface{}

web.xml

 <servlet> <servlet-name>jersey-servlet-kagw</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.ttech.tims.imos.web.ApiGWRestApplicationConfig</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Entonces, lo que puede hacer es obtener ApplicationContext y usar getBeansWithAnnotation(Path.class) . Esto le dará todas las instancias de recursos que forman parte del perfil. Luego puede registrar las instancias.

Pensé que sería posible inyectar ApplicationContext en ResourceConfig , pero como se menciona en el comentario anterior, parece que la creación de ResourceConfig aún no tiene acceso a él.

Lo que pude ponerme a trabajar es usar una Feature JAX-RS que también tiene acceso a los métodos de registro, tal como lo tiene en ResourceConfig . El uso de la Feature le dará acceso a ApplicationContext

 public class SpringProfilesFeature implements Feature { @Inject private ApplicationContext context; @Override public boolean configure(FeatureContext featureContext) { Map<String, Object> resources = context.getBeansWithAnnotation(Path.class); resources.values().forEach(resource -> featureContext.register(resource)); return true; } }

Luego simplemente registre la función con ResourceConfig

 public AppConfig() { register(SpringProfilesFeature.class); }

Elimine cualquier otro registro que tenga para todos sus recursos. Simplemente deje que la función los registre.

He confirmado que esto funciona. No estoy seguro de cómo configura su perfil para el entorno, pero espero que esto sea algo que ya sepa cómo hacer.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!