I added following code: Still facing issue @CrossOriginResourceSharing( allowOrigins = { "http://localhost:56696" }, allowCredentials = true, maxAge = 1, allowHeaders = { "X-custom-1", "X-custom-2" }, exposeHeaders = { "X-custom-3", "X-custom-4" } )
@Path("/office/") public class OfficeOffice { int count = 0; Object obj = new Object(); @Context private HttpHeaders headers; @GET @CrossOriginResourceSharing(allowOrigins = { "http://localhost:56696" }, allowCredentials = false, exposeHeaders = { "X-custom-3", "X-custom-4" }) @Path("/offices/{id}/") @Produces("text/plain") public String getCustomer(@PathParam("id") String id) { synchronized (obj) { ++count; System.out.println("----invoking getCustomer, Customer id is: " + count); } return "Systems"; // return Response.status(Status.OK).entity("works").build(); } // This method will do a preflight check itself @OPTIONS @Path("/") @LocalPreflight public Response options() { String origin = headers.getRequestHeader("Origin").get(0); if ("http://localhost:56696".equals(origin)) { return Response.ok() .header(CorsHeaderConstants.HEADER_AC_ALLOW_METHODS, "DELETE PUT") .header(CorsHeaderConstants.HEADER_AC_ALLOW_CREDENTIALS, "false") .header(CorsHeaderConstants.HEADER_AC_ALLOW_ORIGIN, "http://localhost:56696 ") .build(); } else { return Response.ok().build(); } } @GET @CrossOriginResourceSharing( allowOrigins = { "http://localhost:56696" }, allowCredentials = true, exposeHeaders = { "X-custom-3", "X-custom-4" } ) @Produces("text/plain") @Path("/annotatedGet/{echo}") public String annotatedGet(@PathParam("echo") String echo) { return echo; } On Thu, Dec 3, 2015 at 4:51 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote: > Please do not copy exception traces into Subject :-) > > Have a look at > http://cxf.apache.org/docs/jax-rs-cors.html > > Register that filter as a provider > > Sergey > On 03/12/15 11:04, Shashank Dutt Jha wrote: > >> I want the REST server to be accessible to web/ browser app. Which is >> correct example to refer to. >> >> On Wed, Dec 2, 2015 at 11:15 AM, Shashank Dutt Jha <shashank...@gmail.com >> > >> wrote: >> >> Server side code: >>> >>> protected Server() throws Exception { >>> JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); >>> sf.setResourceClasses(CustomerService.class); >>> sf.setResourceProvider(CustomerService.class, >>> new SingletonResourceProvider(new CustomerService())); >>> sf.setAddress("http://161.85.91.7:9000/"); >>> sf.create(); >>> >>> >>> ------- >>> When I try to connect to server from chrome browser I get following error >>> >>> MLHttpRequest cannot load http://161.85.91.7:9001/office/offices/123. >>> Response to preflight request doesn't pass access control check: No >>> 'Access-Control-Allow-Origin' header is present on the requested >>> resource. >>> Origin 'http://localhost:56696' is therefore not allowed access. >>> >>> >>> How to resolve this issue? >>> >>> >>> >>> >> > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ >