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

Reply via email to