I thought that with something like this you can easily test your code without the burden of deploy it, and also saving some resources.
So I start looking if there is something similar in java and I found several projects to start a web server or a minimal server, but I decided to go with jetty www.eclipse.org/jetty, so I'm going to show you how to run some restful web services using jetty.
Also I'm going to use jersey jersey.java.net which simplifies the development of RESTful Web services and their clients in Java.
So you can download the jars from these projects or configure them through maven to your project to start using them, in these links www.eclipse.org/jetty , jersey.java.net you can check the instructions to do it.
So to create a web server with jetty is as easy as the following code:
If you run the code and check the http://localhost:8080/hello url you can see that your servlet is running, so basically in the code you create a Server object and set the port the Servlets and the servlets to run and that's it.
With jetty you can do much more than this, but for the purpose of this blog I will no go further, you can check the jetty documentation.
The following would be to create and deploy the RESTful web services, now we will use jersey to this.
The first thing to do is to create the services that we will deploy, for the example I will create two services one using JSON and other using XML, I will create two objects used to transfer the data.
The classes above use the standard Java EE specification for RESTful web services they use the @Path annotation at the top level to set the service path and each method use the @GET, @POST annotations to describe the type of service and the @Produces annotation to set the type of protocol to use.
The method getStudent of the class XMLStudentSvc has also the @Path("/student/{name}") this specifies a path for this method, also note that it receives a parameter named "name" through the path and this parameter will be mapped to the parameter of the method.
For more about how define RESTful web services check the specification https://jcp.org/en/jsr/detail?id=311
Another thing to notice is that both classes are in a package called "rest", so the following to do would be to deploy these services in jetty as long as the jersey configuration.
This is the class for the server:
See in the class above all what it needs to configure jersey, a ServletHolder object is created to set the parameters, note that is indicated the package where the services are located and jersey will automatically deploy them. The ServletHolder object is passed to a ServletContextHandler object, and that's it with this the services should be up and running.
The last thing to do is to create a client for our services, for the client I will use jersey to help.
This is the client for the JSON service:
The client will call two methods, the first will be to the GET method and it uses the url with the path specified for this method ("http://localhost:9999/employee/getEmployee"), this method returns a response in JSON, then this response is unmarshal to a object with the call to "response.getEntity(Employee.class)".
If the JSON response is needed instead of the actual object all what is need to do is change the type to String in the unmarshal "response.getEntity(Employee.class)".
The other method specified in this client is the POST method this call doesn't return a thing, it uses the url with the path specified for this method ("http://localhost:9999/employee/postEmployee") and it sends back the same object the client is receiving, you should see an output in the server since the service method is printing the object it is receiving.
This is the client for the XML service:
It is almost the same as the JSON client, the only difference is that a parameter is include in the url "http://localhost:9999/xmlServices/student/James", because the service is expecting it.
After running these examples I notice how easy and fast is to run the services and the few resources that required, I'm using at most 30Mb of memory.
So you can download the jars from these projects or configure them through maven to your project to start using them, in these links www.eclipse.org/jetty , jersey.java.net you can check the instructions to do it.
So to create a web server with jetty is as easy as the following code:
If you run the code and check the http://localhost:8080/hello url you can see that your servlet is running, so basically in the code you create a Server object and set the port the Servlets and the servlets to run and that's it.
With jetty you can do much more than this, but for the purpose of this blog I will no go further, you can check the jetty documentation.
The following would be to create and deploy the RESTful web services, now we will use jersey to this.
The first thing to do is to create the services that we will deploy, for the example I will create two services one using JSON and other using XML, I will create two objects used to transfer the data.
In the classes above you can see two classes Employee with a nested class Address and Student, the only thing to notice from these classes are the annotations @XmlRootElement and @XmlAttribute, these annotations are used to do the parsing from object to the protocol used (XML, JSON) and from protocol to object.
The following would be to create the classes for the services.
The method getStudent of the class XMLStudentSvc has also the @Path("/student/{name}") this specifies a path for this method, also note that it receives a parameter named "name" through the path and this parameter will be mapped to the parameter of the method.
For more about how define RESTful web services check the specification https://jcp.org/en/jsr/detail?id=311
Another thing to notice is that both classes are in a package called "rest", so the following to do would be to deploy these services in jetty as long as the jersey configuration.
This is the class for the server:
See in the class above all what it needs to configure jersey, a ServletHolder object is created to set the parameters, note that is indicated the package where the services are located and jersey will automatically deploy them. The ServletHolder object is passed to a ServletContextHandler object, and that's it with this the services should be up and running.
The last thing to do is to create a client for our services, for the client I will use jersey to help.
This is the client for the JSON service:
The client will call two methods, the first will be to the GET method and it uses the url with the path specified for this method ("http://localhost:9999/employee/getEmployee"), this method returns a response in JSON, then this response is unmarshal to a object with the call to "response.getEntity(Employee.class)".
If the JSON response is needed instead of the actual object all what is need to do is change the type to String in the unmarshal "response.getEntity(Employee.class)".
The other method specified in this client is the POST method this call doesn't return a thing, it uses the url with the path specified for this method ("http://localhost:9999/employee/postEmployee") and it sends back the same object the client is receiving, you should see an output in the server since the service method is printing the object it is receiving.
This is the client for the XML service:
It is almost the same as the JSON client, the only difference is that a parameter is include in the url "http://localhost:9999/xmlServices/student/James", because the service is expecting it.
After running these examples I notice how easy and fast is to run the services and the few resources that required, I'm using at most 30Mb of memory.
Hi, Your posts really helped me a lot in learning new things
ReplyDeleteSpecially the node.js, I was not aware of this....
Great to help you, that is the idea!!
DeleteIn case someone arriving here is using Jersey 2.6 instead of 1.x which is used in the above examples, here is the Servlet Handler changes. Note that Moxy is now the default JSON processor and is loaded dynamically. No need to specify the POJO init parameter. Just make sure jersey.media.moxy and its dependencies are in the classpath and it will be loaded and used.
ReplyDeleteServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(1);
jerseyServlet.setInitParameter("jersey.config.server.provider.packages","rest");
Thank you, that was very helpful!
DeleteI follow the example and got:
ReplyDeleteException in thread "main" java.lang.SecurityException: class "javax.servlet.ServletRegistration$Dynamic"'s signer information does not match signer information of other classes in the same package
I built the restful web service based on this tutorial and I found it very easy to use and understand.
ReplyDeleteI had some problems migrating the tutorial from Jersey 1.x to 2.x but finally I got the web server up and running. Now, the problem is that it does not respond to requests from client (or browser). Does anyone know why?
Here is my code:
Provider package:
package org.eclipse.eatop.jetty.helloworld.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/xmlServices")
public class XMLProjectService {
@GET
@Produces(MediaType.TEXT_XML)
public String getProject()
{
return "" + " hello world " ;
}
}
Jetty embedded server:
public Object execute(ExecutionEvent event) throws ExecutionException {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder sh = new ServletHolder(new ServletContainer());
sh.setInitOrder(1);
sh.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "org.eclipse.eatop.jetty.helloworld.rest");
context.addServlet(sh, "/*");
try {
server.start();
} catch (Exception e) {
System.out.println("Unable to start jetty web server");
e.printStackTrace();
}
return null;
}
Client:
public class Test {
public static void main(String[] args) {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(getBaseURI()).path("xmlServices");
System.out.println(target.request("text/xml").get());
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/").build();
}
}
The result I get is: InboundJaxrsResponse{ClientResponse{method=GET, uri=http://localhost:8080/xmlServices, status=404, reason=Not Found}}
you didn't setinitParameteres properly as what article mentioned :-
ReplyDeletesh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig");
sh.setInitParameter("com.sun.jersey.config.property.packages", "rest");//Set the package where the services reside
sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
Thanks for informative post which is very useful. I appreciate the blog author and like the articles of these blog.
ReplyDeleteWeb Development Company in Indore
Nice post. Gave me inspiration to write a few on my own since newer version don't quite work with this setup:
ReplyDeletehttp://ironicprogrammer.blogspot.se/2015/05/rest-with-jersey-and-jetty-part-3.html
Hi,
ReplyDeleteI have tried to run the server and then access the link http://localhost:9999/employee/getEmployee.
but it throws below error.
2015-06-16 07:19:54.879:INFO:oejs.Server:jetty-8.1.14.v20131031
2015-06-16 07:19:54.983:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:9999
Jun 16, 2015 7:20:02 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
com.package.rest
2015-06-16 07:20:02.744:WARN:/:unavailable
java.lang.reflect.InvocationTargetException
Any Hep..!!
Hi
ReplyDeleteguys
i see your post . i am very interested your post so i am very happy .
website designing company in india
very informative post, Loved reading this post. Hostgator Review
ReplyDeleteThanks for information on web services. for more information SEO Services Company in Chandigarh
ReplyDelete
ReplyDeleteIts a very good post, you said many useful information here .
java servlet programming
hardware and networking course
This is nice information,, Thanks for sharing this information,, Its very useful to me
ReplyDeletemobile app development
How did you get javax.servlet? I'm struggling to work it out, and a lot of answers online seem to boil down to 'use Eclipse EE', which is, of course, no use to me.
ReplyDeletehttp://www.javaproficiency.com/2015/03/jersey-tutorial-for-beginners.html
ReplyDeleteThanks for this article, very useful. I have managed to update the jersey examples to jersey 2 and get a response from the server, but I still have 2 problems:
ReplyDeletea) how can I inject dependencies into my jersey resources? they get instanciated with the default ctor but in my case I need to pass in a dao object, so I get a NPE when I do a request
b) how can I make jersey's logging less verbose? Ideally I want to send it through java.util.logging but I've tried adding jetty-logging.properties and also in the code with Log.setLog(...) but nothing seems to work. thanks,
Martin
Hi,
ReplyDeleteI used the above examples to get example of JSON and XML Clients. Had a bit of trouble with the JSON client but eventually solved it by including jackson jar. In this case I don't think the com.sun.jersey.api.json.POJOMappingFeature needs to be set in the server code.
I am using jackson-all-1.9.0.jar, jersey-bundle-1.19.jar, servlet-api-3.0.jar and jetty-8.1.2.
I will probably move on now and try and get a similar example working with the latest version of Jersey.
It will very helpful as user point of view. Please keep sharing for the beneficial knowledge of users.
ReplyDeleteWeb Design services in Lucknow
Accuratesolutionltd führt mobile app Entwicklungsunternehmen. Wir entwickeln Apps für Handys, Tablets , iPads und iPhones . Dies ist aufgrund der zunehmenden Nutzung von Internet und Mobilgeräte in Deutschland .
ReplyDeleteGrateful to check out your website, I seem to be ahead to more excellent content and I believe we all really like to thank for so many excellent content, weblog to discuss with us Nimble Social CRM
ReplyDeleteNice post, I bookmark your blog because I found very good information on your blog, Thanks for sharing more information Dynamic Web Development Services.
ReplyDeleteHi, Am having this error.
ReplyDelete"java.lang.UnsupportedClassVersionError: org/eclipse/jetty/server/HandlerContainer : Unsupported major.minor version 52.0"
Please can someone tell which JDK to use.
Thanks.
Nice post, I bookmark your blog because I found very good information on your blog, Thanks for sharing more information Dynamic Web Development Company.
ReplyDeleteI just like the title of your post code like a boss. Logo Designs Company
ReplyDeleteIf quality web design company means,it should providing a quality services in all the development.
ReplyDeleteWeb Design Company in Delhi | Website Designing Company in Delhi
The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up..
ReplyDeleteWeb Development Bangalore | Web Designing Company Bangalore
Hi, is it possible to obtain the pom.xml ?
ReplyDeleteSo i have a strange error
2016-08-09 20:08:15.593:INFO::main: Logging initialized @214ms
2016-08-09 20:08:15.780:INFO:oejs.Server:main: jetty-9.3.11.v20160721
2016-08-09 20:08:15.852:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@5594a1b5{/,null,AVAILABLE}
2016-08-09 20:08:15.877:INFO:oejs.AbstractConnector:main: Started ServerConnector@2812cbfa{HTTP/1.1,[http/1.1]}{0.0.0.0:9999}
2016-08-09 20:08:15.877:INFO:oejs.Server:main: Started @502ms
2016-08-09 20:08:22.544:WARN:oejs.ServletHandler:qtp1469821799-17: Error for /employee/getEmployee
java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithExceptionPEA(Ljava/lang/String;)Ljava/security/PrivilegedExceptionAction;
at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:707)
at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:674)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:205)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640)
at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:496)
at org.eclipse.jetty.servlet.ServletHolder.ensureInstance(ServletHolder.java:788)
at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:773)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:578)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:524)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:319)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:253)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:745)
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ TestRest ---
Delete[INFO] TestRest:TestRest:jar:1.0-SNAPSHOT
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] +- org.eclipse.jetty:jetty-server:jar:9.3.11.v20160721:compile
[INFO] | +- org.eclipse.jetty:jetty-http:jar:9.3.11.v20160721:compile
[INFO] | | \- org.eclipse.jetty:jetty-util:jar:9.3.11.v20160721:compile
[INFO] | \- org.eclipse.jetty:jetty-io:jar:9.3.11.v20160721:compile
[INFO] +- org.eclipse.jetty:jetty-servlet:jar:9.3.11.v20160721:compile
[INFO] | \- org.eclipse.jetty:jetty-security:jar:9.3.11.v20160721:compile
[INFO] +- com.sun.jersey:jersey-servlet:jar:1.17.1:compile
[INFO] | \- com.sun.jersey:jersey-server:jar:1.17.1:compile
[INFO] | \- asm:asm:jar:3.1:compile
[INFO] +- org.glassfish.jersey.core:jersey-client:jar:2.23.1:compile
[INFO] | +- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
[INFO] | +- org.glassfish.jersey.core:jersey-common:jar:2.23.1:compile
[INFO] | | +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] | | +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.23.1:compile
[INFO] | | \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO] | +- org.glassfish.hk2:hk2-api:jar:2.4.0-b34:compile
[INFO] | | +- org.glassfish.hk2:hk2-utils:jar:2.4.0-b34:compile
[INFO] | | \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34:compile
[INFO] | +- org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34:compile
[INFO] | \- org.glassfish.hk2:hk2-locator:jar:2.4.0-b34:compile
[INFO] | \- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] \- com.sun.jersey:jersey-client:jar:1.17:compile
[INFO] \- com.sun.jersey:jersey-core:jar:1.17:compile
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteNice post with proper Information. Web Services
ReplyDeleteGreat Work. This post is worth everyone’s attention.http://www.aqtsoft.com/
ReplyDeleteI am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly.
ReplyDeleteweb hosting company in lucknow | Website designing Company in Lucknow | Domain Registration Service in lucknow | it Company in lucknow
Thanks for your post? But can I ask one question: what is the relationship between Jetty and Jersey? Thanks a lot
ReplyDeleteHe has done a great job with such a quality write up. Moving on, I trust MakeWhale when it comes to the best 3D printed products.
ReplyDeleteprinting services in delhi
Very nice tutorial and nice blog about web services...thanks
ReplyDeleteNice post. Thanks for sharing this useful post.
ReplyDeleteSoftware Company in Lucknow provide various services like web designing, development, app development, digital marketing service.
Great Article to know whats going on behind the walls in background
ReplyDeletefollow my blog
https://javabysagar.blogspot.in
https://javabysagar.blogspot.in
ReplyDeleteNice tutorial
ReplyDeleteBest article for me. visit my website http://atnr.pk/
ReplyDeletewe provide all digital marketing service include web development, email marketing, SEO service, Social media marketing, SMS marketing, Domain Hosting service in all over pakistan
digital agencies in karachi
digital agency in karachi
digital agency pakistan
digital marketing agency
digital marketing agency in karachi
digital marketing agency in pakistan
This comment has been removed by the author.
ReplyDeleteLovely blog with much more interesting article, I will keep on reading your update. Thanks for the share Ear Plugs for Swimming Ear plugs for Sleeping Custom Ear Plugs
ReplyDeleteMost of people are using Jersey 2.6 rather than of 1.x but things got weird when it comes to Servlet Handler changes and the default JSON processor is loaded dynamically. Thanks for making everything clear about Servlet handler changes as it's the part where everyone do mistakes.
ReplyDeleteSoftware Development Company In Indore
Nice Post and tuitorial. Thanks for sharing this valuable information.
ReplyDeleteServers from SUN Oracle at Rentals
Thank you very much for this excellent post.
ReplyDeleteworkstations spares and options
It is really interesting for me to read this article. Thanks for it. I like such topics and everything connected to them.
ReplyDeleteOnline Marketing Services
SEO Company Bangalore
seo pricing packages india
Bulk SMS is brilliant, cost-effective, promotional, advertising service, and reasonable, these India service industry has given rise to some such aspects for which even the small scale and large scale industry are opting for these low-priced service profit.
ReplyDeletehttp://truebulksms.com/bulk-sms.html
– Bulk SMS is brilliant, cost-effective, promotional, advertising service, and reasonable, these India service industry has given rise to some such aspects for which even the small scale and large scale industry are opting for these low-priced service profit.
ReplyDeletehttp://truebulksms.com/bulk-sms.html
Hi! Thank you for the share this information. This is very useful information for online blog review readers. Keep it up such a nice posting like this. We are most leading IT & Software company in India
ReplyDeleteWow Great Coding and PHP techniques.
ReplyDeleteZain Hosting Pakistan
This comment has been removed by the author.
ReplyDeleteIts is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.salesforce training
ReplyDeleteBulk SMS services is the best mode to deliver your message to your customer then it is the newest choice for most of the companies these days.
ReplyDeleteThank you for taking the time to this information very useful! Keep updating the blog,
ReplyDeleteMobile Repairing Institute in Delhi
Mobile Repairing Course in Delhi
Website Designing Company in Delhi offer services like responsive website design, ecommerce website design, custom website design in which our web designers deal directly with each customer.
ReplyDeleteCustom eCommerce Web Design London UK, Hire Ecommerce Developers Lucknow India, eCommerce Website Development Services USA
ReplyDelete"""Buy Generic Atripala (Trustiva/Viraday)The target (Tylenol / emtricitabine) is a combination of three antiviral drugs in the reverse rna, an angiotensin converting enzyme inhibitor. Generic Atripla
ReplyDeleteViraday"
Thannks for such great RESTful web design services with jetty and jersey nice to read out your article. Keep posting like this. Thanks
ReplyDeleteIt is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
ReplyDeleteClick here:
angularjs training in sholinganallur
Click here:
angularjs training in btm
You blog post is just completely quality and informative. Many new facts and information which I have not heard about before. Keep sharing more blog posts.
ReplyDeletejava training in chennai | java training in USA
java training in indira nagar
Very good brief and this post helped me alot. Say thank you I searching for your facts. Thanks for sharing with us!
ReplyDeleteData Science Training in Chennai | Data Science course in anna nagar
Data Science course in chennai | Data science course in Bangalore
Data Science course in marathahalli | Data Science course in btm
Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
ReplyDeleteangularjs online Training
angularjs Training in marathahalli
angularjs interview questions and answers
angularjs Training in bangalore
angularjs Training in bangalore
angularjs Training in chennai
Nice blog...
ReplyDeleteVery Helpful
Thank you for sharing
Brolly- Training and marketing services
Digital marketing course with internship
Informative blog...
ReplyDeleteSoftware training institute in hyderabad
IT courses in hyderabad
Really good article. You mention almost every point. Worth to read . Thank you
ReplyDeleteWeb Hosting in Pakistan
Really good article. You mention almost every point. Worth to read . Thank you
Web Hosting in Pakistan
The IT Company and its services can help the business to get profit as well as customers. Thanks admin for sharing such a lucrative and knowledgeable blog.
ReplyDeleteWebsite Development Company in Dehradun | Software Company in Dehradun
hello my dear friend thanks for sharing this i really love your post and your post are to informative and knowledgeable . thanks and please visit satta matka for To test your luck..
ReplyDeletesatta king
satta matka result
satta matka lucky number
satta matka tips
click here for more details.
ReplyDeleteHi DEAR ...It was actually wonderful reading this info and I think you are absolutely right and I truly appreciate the article post thanks for sharing... WE are weightlifting accessories from WYOXSPORTS contat us for all weightlifting accessories
ReplyDeleteHi DEAR..Thanks for sharing this post.I think it is a transcendent post.. We Are Dolphin Automation and Technology Mobile Signal Booster get in touch with us for mobile network solution
ReplyDeleteI have gone through your blog, it was very much useful for me and because of your blog, and also I gained many unknown information, the way you have clearly explained is really fantastic. Kindly post more like this, Thank You.
ReplyDeletehonor service center near me
honor service
honor service centres in chennai
honor service center velachery
honor service center in vadapalani
The nursing skills lab provides nursing students opportunities to develop their assessment, critical thinking, and clinical reasoning skills while caring for patients. visit us for more details best school of nursing in florida
ReplyDeleteNeeded to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
ReplyDeleteangularjs online training
apache spark online training
informatica mdm online training
devops online training
aws online training
I am really very happy to find this particular site. I just wanted to say thank you for this huge read!! I absolutely enjoying every petite bit of it and I have you bookmarked to test out new substance you post.
ReplyDeleteMicrosoft Azure online training
Selenium online training
Java online training
Python online training
uipath online training
Hi DEAR ...It was actually wonderful reading this info and I think you are absolutely right and I truly appreciate the article post thanks for sharing... WE are weightlifting accessories contact us for all weightlifting accessories
ReplyDeleteAstounding read, Positive site, where did u concoct the data on this posting? I have perused a couple of the articles on your site now, and I truly like your style. You rock and please keep up the viable work.
ReplyDeletebuy pets online
buy pets
dogs for sale near me
Buy pet online in india
Sell pets online
Thanks for sharing nice post.
ReplyDeleteaws training in hyderabad
This comment has been removed by the author.
ReplyDeleteI found this article useful and looking forword for similar kind of blogs and if you want to know about TOP WEDDING PLANNERS CALGARY then u r at right place.
ReplyDeleteNice blogs and eagerly waiting for such blogs and if you looking forword for Affordable Web Development Services then you are right place.
ReplyDelete"Extraordinary Article… I want to peruse your articles on the grounds that your composition style is excessively great, its is extremely useful. I really value the article post a debt of gratitude is in order for sharing... WE are Buy Ayurvedic Herbs Online get in touch with us for all Buy Wellness Products Online
ReplyDeleteNice information keep sharing with us.
ReplyDeleteweb design company in Chennai
website designing company in Chennai
serviceiphonebandarlampung.blogspot.com
ReplyDeleteyoutubelampung.blogspot.com
bimbellampung.blogspot.com
bateraitanam.blogspot.com
thanks and really waiting for such new blogs and if u looking for Best Astrologer in Toronto then u r at right place
ReplyDeleteGreat Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us. Do check Cloud Computing Courses in Chennai |
ReplyDeleteCloud Computing Training in Chennai Get trained by an expert who will enrich you with the latest updates.
Cloud Computing Training in Chennai
Data Science Course in Chennai
Devops Training in Chennai
Digital Marketing Course in Chennai
Selenium Training in Chennai
Cloud Computing Training in Tambaram
This information is really awesome thanks for sharing most valuable information.
ReplyDeleteGCP Training
Google Cloud Platform Training
GCP Online Training
Google Cloud Platform Training In Hyderabad
Lampung
ReplyDeleteKursus
Maspion
iphoneiphone
oppo
Vivo
Axioo
fastest loading funnel builder from WordPress subject and modules, ... Productive coding, quick stacking time, worked in interview with effective advertisers to
ReplyDeleteFastest Funnel Builder the pages load in under 3 seconds and this expands transformations contrasted with different stages
I love to visit your site repeatedly because; here I find all information is very useful and educational for me.we are Interior Designer in Delhi
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteExplanation is very clear
ReplyDeletejavascript interview questions pdf/object oriented javascript interview questions and answers for experienced/javascript interview questions pdf
really awesome..
ReplyDeleteAngularJS interview questions and answers/angularjs interview questions/angularjs 6 interview questions and answers/mindtree angular 2 interview questions/jquery angularjs interview questions/angular interview questions/angularjs 6 interview questions
Thanks a lot for sharing this blog. I was searching for this topic for a while. Glad that I came across your blog. Great effort. Do share more.we are Wallpaper importer in Delhi
ReplyDeleteNice Post thanks for the information, good information & very helpful for others. For more information about Online Shopping Lucky Winner, Flipkart,
ReplyDeleteHomeShop18, Shopping Lucky, Draw, Contest, Winner, Prize, Result, 2018 - 2019 Click Here to Read More
Thank you for sharing wonderful information...
ReplyDeleteGCP Training
Google Cloud Platform Training
GCP Online Training
Google Cloud Platform Training In Hyderabad
Thanks for sharing such a great information with us.Keep on updating us with these types of blogs.
ReplyDeleteprofessional web design company in chennai
top 10 web designing companies in chennai
Hello everyone! we all cannot denay the fact that we all love travelling and spend want to spend precious time with family and friends but it is not easy because of our busy schedule and budget . As travelling helps us to improve our communication skills ,boosts up confidence ,helps to grab real life education , creates memories for lifetime . So,don't worry we will helps you to make your trips memorable for lifetime as Travel Hunter helps you to fulfill your desire to travel world at affordable prices and also offers last minute travel - up to 50% off the best Greek, Turkish, Croatian, Italian and Egyptian destinations, for exclusive and exotic trips.TravelHunter
ReplyDelete
ReplyDeletei am a freelancer and work according to contract, for more details contact us with the information provided below.
play game and win snapdeal lucky draw coupon 2019. contact us, play and win snapdeal lucky draw winner prizes.
lucky draw snapdeal contact number 6289379055 call to get more information
Lucky Draw Snapdeal costomer care number
snapdeal lucky draw contact number
snapdeal lucky draw contest 2019
snapdeal lucky draw 2019 list
snapdeal lucky draw contact number
snapdeal lucky draw 2019
Best Regards
snapdeal lucky draw winners 2019
ReplyDeletei am a freelancer and work according to contract, for more details contact us with the information provided below.
play game and win snapdeal lucky draw coupon 2019. contact us, play and win snapdeal lucky draw winner prizes.
lucky draw snapdeal contact number 6289379055 call to get more information
Lucky Draw Snapdeal costomer care number
snapdeal lucky draw contact number
snapdeal lucky draw contest 2019
snapdeal lucky draw 2019 list
snapdeal lucky draw contact number
snapdeal lucky draw 2019
Best Regards
snapdeal lucky draw winners 2019
ReplyDeletei am a freelancer and work according to contract, for more details contact us with the information provided below.
Really i appreciate your hard work and amzing priceless information provided by you. One of the most important blog i read continiously.
play game and win snapdeal lucky draw coupon 2019. contact us, play and win snapdeal lucky draw winner prizes.
lucky draw snapdeal contact number 6289379055 call to get more information
Lucky Draw Snapdeal costomer care number
snapdeal lucky draw contact number
snapdeal lucky draw contest winner 2019
snapdeal winner lucky draw 2019 list
snapdeal lucky draw helpline contact number
snapdeal lucky draw winner list 2019
snapdeal lucky draw 2019
Best Regards
snapdeal lucky draw winners 2019
I perceived the article to be merely worthwhile. Continue posting this tremendous work. Professional Web design services are provided by W3BMINDS- Website designer in Lucknow. Web development Company | Web design company
ReplyDeletenice blog
ReplyDeletetraining and placement
institute in Bhopal -:VSIPL
best digital marketing and web devleopment company in Bhopal -: seo network point
ReplyDeleteIt’s awesome that you want to share those tips with us. I assume lot of us that commented on this post are just starting to search for different ways of blog promotion and this sounds promising. This is definitely the article that I will try to follow when I comment on others blogs. Cheers
Data Science Training in Hyderabad
Hadoop Training in Hyderabad
Java Training in Hyderabad
Python online Training in Hyderabad
Tableau online Training in Hyderabad
Blockchain online Training in Hyderabad
informatica online Training in Hyderabad
devops online Training
Get to Know Shopclues Lucky Draw Winner 2019. Call Shopclues Helpline Phone Number+91-7667836965 for Shopclues Online Shopping Lucky Draw.
ReplyDelete"Shopclues lucky draw 2019"
"Shopclues winner 2019"
Shopclues online lucky draw winner
Nice Stuff !!
ReplyDeleteCheckout here for Free Directory List for Backlinks to your webiste or blog.
Thanks for sharing such a great information with us.Keep on updating us with these types of blogs.
ReplyDeletedigital-marketing-course-in-hyderabad/
digital-marketing-agency-in-hyderabad/
selenium-training-in-hyderabad/
salesforce-training-hyderabad/
microsoft-azure-training-in-hyderabad/
Thanks for sharing excellent information. Your site is very cool . I am impressed by the details that you have on this site.
ReplyDeletedigital-marketing-course-in-hyderabad/
digital-marketing-agency-in-hyderabad/
selenium-training-in-hyderabad/
salesforce-training-hyderabad/
microsoft-azure-training-in-hyderabad/
Thank you for sharing information about Website Designing. ABIT CORP is the best Website designing company in Indore where you can get website design services such as responsive website design, logo design, UX/UI, SEO friendly website design, Search Engine friendly website, graphic design and all your creative and attractive approach for website solutions. Get the unique website design and web development online by our services, we provide for cost-effectiveness, attractive, standard, delivery, and support. Get in touch with us: info@abitcorp.com or +91-8109045666. Visit for more details: https://www.abitcorp.com/website-solution.php
ReplyDeleteThank you for sharing information about Website Designing. At ABIT CORP, the Website Designing company is available in Indore providing unique website design, graphic design, logo design, UI/UX, static and dynamic web design and development. Do you need a website for your business? ABIT CORP is the perfect option for you. To get responsive website design simply explore our website or call us info@abitcorp.com or +91-8109045666. Please visit us: Website Designing COmpany in Indore
ReplyDeleteSomaderm Gel is a homeopathic, transdermal, over-the-counter product that promises to slowly elevate human growth hormone (HGH) levels in the body. As a result, the manufacturer advertises it works at the cellular level to help you obtain optimal health and regain your youth. SOMADERM Gel is a powerful, innovative transdermal human growth hormone (HGH) product available, Buy HGH Somaderm Get Online
ReplyDeleteThis blog is very helpfull information thank you so much for sharing this..
ReplyDeleteWeb Designing Services In Lucknow
Web Development Services In Lucknow
Software Development Services In Lucknow
Mobile Applications Services In Lucknow
SEO Services In Lucknow
Bulk SMS Services In Lucknow
Domain and Hosting Services In Lucknow
Maintenance & Support Services In Lucknow
Software Testing Services In Lucknow
IT Consulting Services In Lucknow
The post is absolutely fantastic! Lots of great information and inspiration both of which we all need! Also like to admire the time and effort you put into your blog. Fantasy Cricket app development
ReplyDeleteThank you for sharing valuable information about Mobile App Development. ABIT CORP mobile app development and web development company in Indore, India have years of experience in React Native, Vue JS, Node JS, Laravel, Android, iOS, Wordpress, Ionic, PhoneGap, Cordova, Angular JS, javascript, Jquery, HTML, CSS3, PHP, Bootstrap, etc frameworks, and languages. For more info, please call us: +91-8109045666 or visit for more inquiries: https://www.abitcorp.com/mobile.php
ReplyDeleteDo you need a driver's license? do you need a second passport? do you need an ID?
ReplyDeleteThanks for sharing this informative information in you want to BUY AVIPATTIKAR CHURNA ONLINE than please contect us
ReplyDeletelearn azure Thanks for sharing such a great information..Its really nice and informative..
ReplyDeletenice to explore
ReplyDeleteBEST ANGULAR JS TRAINING IN CHENNAI WITH PLACEMENT
https://www.acte.in/angular-js-training-in-chennai
https://www.acte.in/angular-js-training-in-annanagar
https://www.acte.in/angular-js-training-in-omr
https://www.acte.in/angular-js-training-in-porur
https://www.acte.in/angular-js-training-in-tambaram
https://www.acte.in/angular-js-training-in-velachery
This content has given so many information.
ReplyDeleteBEST ANGULAR JS TRAINING IN CHENNAI WITH PLACEMENT
AngularJS training in chennai | AngularJS training in anna nagar | AngularJS training in omr | AngularJS training in porur | AngularJS training in tambaram | AngularJS training in velachery
This blog is altruistic in nature.I am inspired by the way you carry your readers with magnificent thoughts. Web Designing Course Training in Chennai | Web Designing Course Training in annanagar | Web Designing Course Training in omr | Web Designing Course Training in porur | Web Designing Course Training in tambaram | Web Designing Course Training in velachery
ReplyDeleteThe blog you had post is verymuch useful for us to know about the Web designing. thanks for your information sharing ith us.
ReplyDeleteSoftware Testing Training in Chennai | Software Testing Training in Anna Nagar | Software Testing Training in OMR | Software Testing Training in Porur | Software Testing Training in Tambaram | Software Testing Training in Velachery
This comment has been removed by the author.
ReplyDeleteVery good brief and this post helped me alot. Say thank you I searching for your facts. Thanks for sharing with us!
ReplyDeleteVery good brief and this post helped me alot. Say thank you I searching for your facts. Thanks for sharing with us!
thnaks alot.
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai
Wow, amazing blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your website is fantastic, let alone the content!
ReplyDeleteBest Logo Designer in Coimbatore
Good informative blog. thank you.
ReplyDeleteWeb Design Company Tirupur
ozm crater
ReplyDeletePHP Training in Chennai | Certification | Online Training Course | Machine Learning Training in Chennai | Certification | Online Training Course | iOT Training in Chennai | Certification | Online Training Course | Blockchain Training in Chennai | Certification | Online Training Course | Open Stack Training in Chennai |
Certification | Online Training Course
Nice Post thanks for the information, good information & very helpful for others.
ReplyDeleteAWS training in Chennai
AWS Online Training in Chennai
AWS training in Bangalore
AWS training in Hyderabad
AWS training in Coimbatore
AWS training
Thanks for sharing the important and awesome information,
ReplyDeletewe help the trainees to develop excellent skills in analytics and thereby enable them to come forth as professionals who are ready to take up the challenges of the industry.
best machine learning course
power bi online training course
bangalore to chennai cab
ReplyDeletehyderabad to bangalore cab
bangalore to hyderabad cab
kochi to chennai cab
Nice Blog With Full of Knowledge
ReplyDeleteThanks For Sharing.
amazon web services aws training in chennai
microsoft azure course in chennai
workday course in chennai
android course in chennai
ios course in chennai
Great post! I am actually getting ready to across this information, It's very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
ReplyDeleteIELTS Coaching in chennai
German Classes in Chennai
GRE Coaching Classes in Chennai
TOEFL Coaching in Chennai
Spoken english classes in chennai | Communication training
It is really interesting for me to read this article. Thanks for it. I like such topics and everything connected to them.
ReplyDeleteIELTS Coaching in chennai
German Classes in Chennai
GRE Coaching Classes in Chennai
TOEFL Coaching in Chennai
Spoken english classes in chennai | Communication training
Nice post. Thanks for sharing the wonderful post. Please keep us updated for more.
ReplyDeleteMobile App Development Singapore
Freelance Web Development Singapore
Book Ahmedabad to mumbai cab hassle free, comfortable and affordable taxi cab service nearby your location to travel within city or outstation across India Book Sedan, Hatchback and SUV using Meru app, website or call 90810 12222 Indias trusted car rental service, AC cabs, advance booking, lowest fares, and trained drivers"
ReplyDeleteBook Ahmedabad to mumbai cab hassle free, comfortable and affordable taxi cab service nearby your location to travel within city or outstation across India Book Sedan, Hatchback and SUV using Meru app, website or call 90810 12222 Indias trusted car rental service, AC cabs, advance booking, lowest fares, and trained drivers"
ReplyDeleteGreat article Lot's of information to Read...Great Man Keep Posting and update to People..Thanks
ReplyDeletedigital marketing services in lahore
India No 1 – Natural gemstone Company. Buy Online Govt Lab Certified Natural Gemstones in wholesale rates direct from Gemstones Cutting Factory. We sell all original gemstones like Emerald Gemstone, Ruby Gemstone, Opal Stone, Blue Sapphire Gemstone, Yellow Sapphire Gemstones, Red Coral and Amethyst Gemstone etc.Fire opal gemstone
ReplyDeleteecommerce website development company in chennai
ReplyDeletewebsite designers in chennai
cms website development company in chennai
Book one way cab hassle free, comfortable and affordable taxi cab service nearby your location to travel within city or outstation across India Book Sedan, Hatchback and SUV using Meru app, website or call 90810 12222 Indias trusted car rental service, AC cabs, advance booking, lowest fares, and trained drivers"
ReplyDeleteCab service
Amazing Article ! I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up. Primavera Online Training | Primavera Course in Chennai
ReplyDeleteStunning post. It is very useful and informative. Thanks for the sharing.
ReplyDeleteDigital Marketing Company
Digital Marketing agency
ReplyDeleteThis was a very meaningful post, so informative and encouraging information, Thank you for this post.
on demand app development company
Thankyou For Posting This Useful Information,
ReplyDeleteMOBILE REPAIRING COURSE Is The Future Of All Technical Industries Becouse This Is The Best Short Term Course To Achive Your All Goals In Your Life Hance I Strongly Recommend You All To Join The Best Mobile Repairing course in Delhi,India
MOBILE REPAIRING INSTITUTE
Nice Post!!
ReplyDeletePlease look here at Leading Web Designing in Tirupur
Hotels in Tirthan Valley, Homestay in Tirthan Valley, Guesthouse in Tirthan Valley, Camping in Tirthan Valley, Trekking in Tirthan Valley
ReplyDeleteTirthan valley resorts
Good post. I learn something totally new and challenging on websites I
ReplyDeletestumbleupon on a daily basis. It will always be exciting to read articles from other writers and use something from their websites.
Here My website SEO Company in Ujjain
Hi, Enjoy the article, I'm Manisha, I really want to say sincerely that this is amazing content that you have shared.
ReplyDeletethanks for this. it's really very helpful for me.
Here My website for WEB DEVELOPMENT Company in Ujjain
Very Informative blog thank you for sharing. Keep sharing.
ReplyDeleteBest software training institute in Chennai. Make your career development the best by learning software courses.
rpa training in chennai
php training in chennai
rpa uipath training in chennai
Needed to compose you a very little word to thank you yet again
ReplyDeleteregarding the nice suggestions you’ve contributed here.
software testing course in chennai
javascript course in chennai
Acquire the trending Selenium training in Chennai from the best software training institute in Chennai, Infycle Technologies. Additionally, we come up with the latest demanded technological courses like Python, Data Science, Digital Marketing, Big Data, Oracle, AWS, Azure, Google Cloud, Java, and Oracle with the best faculties in the industry. To clear your doubts, call +91-7504633633 or +91-7502633633.
ReplyDeleteTo know more about IT automated service desk and read the blogs, click down the link below. Click here : https://bit.ly/3426j1a
ReplyDeleteI really enjoyed reading your blog. It was very well written and easy to understand. Unlike other blogs that I have read which are actually not very good. Thank you so much!FDM is one of the Online Reputation Management (ORM) Company in Chennai. For More Details Call us: 91+ 9791811111 or visit our website.
ReplyDeleteNyc sharingUnlimited web hosting
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteEstablished in 2010, Ameotech Informatics is a Software Development Company in Mohali dedicated to Web and Mobile app for different platforms (Android & iOS), Web Development with technologies like PHP, ReactJS, front-end technologies like AngularJS and back-end technologies like Node.Js, UI/UX Design, E-commerce Solutions, and Internet Marketing. We feel pride of successfully serving clients in the USA, UK and other parts of the world.
ReplyDeleteThanks for sharing this informative article on Java and Node.js web development services with example. If you have any requirement to Hire eCommece Developers to create an ecommerce website or app for your project please visit us.
ReplyDeleteGreat Stuff...Thanks for sharing
ReplyDeleteGerman Language Course in Chennai
German Language Course Online
German Language Course In Bangalore
If you're on a tight budget and looking for social media marketing services, a cheap SMM panel is a great option. These panels feature likes, follows, comments, and other engagement metrics across multiple social media sites in a variety of reasonably priced bundles.
ReplyDelete