I tried the following and things worked as expected. @Path("/hello") public class HelloService {
private String id; public HelloService(String id) { this.id = id; } @GET @Path("/{name}") public String hello(@PathParam("name") String name) { System.out.println("Hello"); return "Hello " + name + " from " + id; } } --------- public class Application { public static void main(String[] args) { new MicroservicesRunner(8080) .deploy(new HelloService("1")) .start(); new MicroservicesRunner(8081) .deploy(new HelloService("2")) .start(); new MicroservicesRunner(8082) .deploy(new HelloService("3")) .start(); new MicroservicesRunner(8083) .deploy(new HelloService("4")) .start(); } } --- Is that not working for you as expected? On Tue, Jan 9, 2018 at 12:26 PM, Irshad Nilam <irsh...@wso2.com> wrote: > Hi all, > > I am working on integration test for 4 microservices written in MSF4J. > > 1 - A Microservice > 2 - B Microservice > 3 - C Microservice > 4 - D Microservice > > These are implemented in a way to deploy them separately. > > Application code (where we deploy the microservice using microservice > runner) will look similar to this. > > > public class Application { > > > public static void main(String[] args) { > > Application application = new Application(); > application.runMS(8081); > > } > > public void runMS(int port) { > > MicroservicesRunner msRunner = new MicroservicesRunner(port); > > msRunner.deploy(new AService()) > > .addExceptionMapper( > new AKeyExceptionMapper(), > new AExceptionMapper(), > new NotFoundExceptionMapper()) > .start(); > > } > } > > > For the integration test, I want to start these four microservices with > the exception mappers. To achieve this, I tried to start this microservice > in separate threads as bellow. (in TestNG Suite) > > //Run A microservice > new Thread(() -> new pathtoA.Application().runMS(8081)).start(); > > //Run B microservice > new Thread(() -> new pathtoB.Application().runMs(8082)).start(); > > //Run C microservice > new Thread(() -> new pathtoC.Application().runMs(8083)).start(); > > //Run D microservice > new Thread(() -> new pathtoD.Application().runMs(8084)).start(); > > > *But I'm having a problem wherein all the four ports, only DService is > getting deployed. AFAIU this is because having multiple *org.wso2.msf4j. > MicroserviceRunner* classes in the same JVM and only one getting loaded. * > > *I have a requirement where I need to run all 4 microservice in one JVM > because of resource issues. ** Is there a way to achieve this without > going to separate JVM for each service?* > > > Please note those Exception mappers belong to each of the microservice > packages. And should also be tested with integration test. So that I cannot > run these service like this. > > MicroservicesRunner msRunner = new MicroservicesRunner(port1,port2, port3); > microservicesRunner.deploy(serviceA, serviceB, > serivice3).addExceptionMapper(Amapper, Bmapper, cMapper).start(); > > > Thanks and regards. > -- > Irshad Nilam > Software Engineering Intern > WSO2 > > Email : irsh...@wso2.com > Mobile : +94 77 3669262 <077%20366%209262> > <http://wso2.com/signature> > > -- *Afkham Azeez* Senior Director, Platform Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>* *email: **az...@wso2.com* <az...@wso2.com> * cell: +94 77 3320919blog: **http://blog.afkham.org* <http://blog.afkham.org> *twitter: **http://twitter.com/afkham_azeez* <http://twitter.com/afkham_azeez> *linked-in: **http://lk.linkedin.com/in/afkhamazeez <http://lk.linkedin.com/in/afkhamazeez>* *Lean . Enterprise . Middleware*
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev