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/
>

Reply via email to