private void init() { exceptionUnmarshallers.add(new AuthorizationErrorExceptionUnmarshaller()); exceptionUnmarshallers.add(new TopicLimitExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new NotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InternalErrorExceptionUnmarshaller()); exceptionUnmarshallers.add(new SubscriptionLimitExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidParameterExceptionUnmarshaller()); exceptionUnmarshallers.add(new StandardErrorUnmarshaller()); setEndpoint("sns.us-east-1.amazonaws.com"); signer = new AWS4Signer(); signer.setServiceName("sns"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandlers.addAll( chainFactory.newRequestHandlerChain("/com/amazonaws/services/sns/request.handlers")); }
/** * Overrides the default endpoint for this client ("https://sns.us-east-1.amazonaws.com") and * explicitly provides an AWS region ID and AWS service name to use when the client calculates a * signature for requests. In almost all cases, this region ID and service name are automatically * determined from the endpoint, and callers should use the simpler one-argument form of * setEndpoint instead of this method. * * <p><b>This method is not threadsafe. Endpoints should be configured when the client is created * and before any service requests are made. Changing it afterwards creates inevitable race * conditions for any service requests in transit.</b> * * <p>Callers can pass in just the endpoint (ex: "sns.us-east-1.amazonaws.com") or a full URL, * including the protocol (ex: "https://sns.us-east-1.amazonaws.com"). If the protocol is not * specified here, the default protocol from this client's {@link ClientConfiguration} will be * used, which by default is HTTPS. * * <p>For more information on using AWS regions with the AWS SDK for Java, and a complete list of * all available endpoints for all AWS services, see: <a * href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3912"> * http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3912</a> * * @param endpoint The endpoint (ex: "sns.us-east-1.amazonaws.com") or a full URL, including the * protocol (ex: "https://sns.us-east-1.amazonaws.com") of the region specific AWS endpoint * this client will communicate with. * @param serviceName The name of the AWS service to use when signing requests. * @param regionId The ID of the region in which this service resides. * @throws IllegalArgumentException If any problems are detected with the specified endpoint. */ public void setEndpoint(String endpoint, String serviceName, String regionId) throws IllegalArgumentException { setEndpoint(endpoint); signer.setServiceName(serviceName); signer.setRegionName(regionId); }