import javax.xml.ws.http.HTTPBinding;
public class HandlingRedirects {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setFollowRedirects(true);
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpCaching {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setCacheControl("no-store");
}
}
import javax.xml.ws.http.HTTPBinding;
public class CustomizingResponseCodes {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPStatusCode(404);
}
}
import javax.xml.ws.http.HTTPBinding;
public class SettingHttpTimeouts {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setConnectionTimeout(30000);
binding.setReceiveTimeout(60000);
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpCookies {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPRequestHeaders("Cookie: name=value");
}
}
import javax.xml.ws.http.HTTPBinding;
public class CustomizingRequestProperties {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPRequestProperty("User-Agent", "My Custom Agent");
}
}
import javax.xml.ws.http.HTTPBinding;
public class SpecifyingHttpBasicAuth {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setAuthorization("username:password");
}
}
import javax.xml.ws.http.HTTPException;
public class HandlingHttpErrors {
public void doSomething() throws HTTPException {
try {
// Call web service operation
} catch (HTTPException e) {
System.out.println("HTTP Error Code: " + e.getStatusCode());
System.out.println("HTTP Error Message: " + e.getMessage());
}
}
}
import javax.xml.ws.http.HTTPBinding;
public class SpecifyingHttpContentType {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPContentType("text/xml");
}
}
import javax.xml.ws.http.HTTPBinding;
import java.util.Date;
public class SettingHttpDateHeaders {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPRequestHeaders("Date: " + new Date().toGMTString());
binding.setHTTPRequestHeaders("Last-Modified: " + new Date().toGMTString());
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpProxies {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setProxy("proxy.host.com");
binding.setProxyPort(8080);
}
}
import javax.xml.ws.WebServiceRefs;
import javax.xml.ws.http.HTTPBinding;
public class CustomizingHttpBindings {
@WebServiceRefs({
@WebServiceRef(name = "myService1", binding = HTTPBinding.class),
@WebServiceRef(name = "myService2", binding = HTTPBinding.class)
})
private ServiceRef[] services;
public void doSomething() {
for (ServiceRef service : services) {
HTTPBinding binding = (HTTPBinding) service.getBinding();
binding.setConnectionTimeout(30000);
binding.setReceiveTimeout(60000);
}
}
}
import javax.xml.ws.http.HTTPParam;
public class UsingHttpParameters {
public void doSomething(@HTTPParam(name = "name") String name) {
// Use the provided HTTP parameter
}
}
import javax.xml.ws.http.HTTPBinding;
public class CustomizingHttpRequestContent {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPRequestMethod("POST");
binding.setHTTPRequestBody("{ \"name\": \"John\" }", "application/json");
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpClientCredentials {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setClientCredentialType("basic");
binding.setClientCredentials(username, password);
}
}
import javax.xml.ws.http.HTTPBinding;
public class CustomizingHttpResponseContent {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPResponseContent("{\"result\": \"success\"}", "application/json");
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpCookiesInBinding {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setCookieHandler(cookieHandler);
}
}
import javax.xml.ws.http.HTTPBinding;
import javax.xml.ws.handler.MessageContext;
public class CustomizingHttpContext {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
MessageContext messageContext = binding.getMessageContext();
messageContext.put("http.connection.keep-alive", true);
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpAuthentication {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setAuthenticationHandler(authenticationHandler);
}
}
import javax.xml.ws.Endpoint;
import javax.xml.ws.http.HTTPBinding;
public class CustomizingHttpEndpoint {
public static void main(String[] args) {
HTTPBinding binding = new HTTPBinding();
binding.setConnectionTimeout(30000);
binding.setReceiveTimeout(60000);
Endpoint endpoint = Endpoint.create(new MyServiceImpl(), binding);
endpoint.publish("http://localhost:8080/myService");
}
}
import javax.xml.ws.handler.HandlerChain;
import javax.xml.ws.handler.HandlerResolver;
import javax.xml.ws.handler.PortInfo;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.http.HTTPBinding;
import java.util.Set;
public class UsingHttpProtocolHandlers implements HandlerResolver {
@Override
public List<Handler> getHandlerChain(PortInfo portInfo) {
HTTPBinding binding = (HTTPBinding) portInfo.getBinding();
if (binding.getHTTPMethod() == "POST") {
List<Handler> handlers = new ArrayList<>();
handlers.add(new MySOAPHandler());
return handlers;
}
return null;
}
}
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.http.HTTPBinding;
public interface MyService {
@WebEndpoint(name = "myEndpoint", binding = HTTPBinding.class)
@HTTPMethod("GET")
public MyEndpoint getMyEndpoint();
}
import javax.annotation.security.RolesAllowed;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@RolesAllowed("admin")
@Path("/myResource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response getSomething() {
return Response.ok("Hello world").build();
}
}
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Response;
public class MyRequestFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) {
String authorizationHeader = requestContext.getHeaderString("Authorization");
if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
requestContext.abortWith(Response.status(401).build());
}
}
}
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import java.util.List;
public class MyResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) {
List<String> headers = responseContext.getHeaders().get("X-My-Custom-Header");
if (headers == null || headers.isEmpty()) {
responseContext.getHeaders().add("X-My-Custom-Header", "My Value");
}
}
}
import javax.xml.ws.http.HTTPBinding;
import java.util.concurrent.Future;
public class UsingHttpAsynchronousProcessing {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setAsynchronous(true);
Future<HttpResponse> response = binding.invokeAsync("myOperation", null);
response.get();
}
}
import javax.xml.ws.handler.Handler;
import javax.xml.ws.handler.HandlerChain;
import javax.xml.ws.handler.PortInfo;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
public class MySOAPHandler implements SOAPHandler<SOAPMessageContext> {
@Override
public Set<String> getHeaders() {
return null;
}
@Override
public boolean handleMessage(SOAPMessageContext context) {
SOAPMessage message = context.getMessage();
// Log message here
return true;
}
@Override
public boolean handleFault(SOAPMessageContext context) {
SOAPMessage message = context.getMessage();
// Log fault here
return true;
}
@Override
public void close(MessageContext context) {}
}
import javax.annotation.security.RolesAllowed;
import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Interceptor;
import javax.ws.rs.ext.Provider;
import java.lang.reflect.Method;
import java.security.Principal;
@Provider
public class MySecurityInterceptor implements Interceptor {
@Context
private ResourceInfo resourceInfo;
@Override
public Response aroundInvoke(Invocation invocation) {
Method method = resourceInfo.getResourceMethod();
if (method.isAnnotationPresent(RolesAllowed.class)) {
Principal principal = invocation.getSecurityContext().getUserPrincipal();
if (principal == null) {
return Response.status(401).build();
}
String[] roles = method.getAnnotation(RolesAllowed.class).value();
boolean authorized = false;
for (String role : roles) {
if (principal.isInRole(role)) {
authorized = true;
break;
}
}
if (!authorized) {
return Response.status(403).build();
}
}
return invocation.proceed();
}
}
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceFeature;
public class UsingHttpContentEncodings {
public static void main(String[] args) {
WebServiceFeature feature = new WebServiceFeature() {
@Override
public void configure(BindingProvider bindingProvider) {
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.http.chunking",
"false"
);
}
};
port = service.getImplPort(feature);
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpHeaderInitialization {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setHTTPRequestHeaders("Accept: text/xml; charset=UTF-8");
}
}
import javax.xml.ws.WebServiceFeature;
public class UsingHttpProxyAuthentication {
public static void main(String[] args) {
WebServiceFeature feature = new WebServiceFeature() {
@Override
public void configure(BindingProvider bindingProvider) {
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.http.proxy.host",
"proxy.example.com"
);
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.http.proxy.port",
"8080"
);
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.http.proxy.username",
"myuser"
);
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.http.proxy.password",
"mypassword"
);
}
};
port = service.getImplPort(feature);
}
}
import javax.xml.ws.http.HTTPBinding;
import java.io.InputStream;
public class UsingHttpStreaming {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setChunkedStreamingMode(true);
InputStream stream = binding.getHTTPResponseStream();
// Process the stream in a streaming manner
}
}
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceFeature;
public class UsingHttpTracing {
public static void main(String[] args) {
WebServiceFeature feature = new WebServiceFeature() {
@Override
public void configure(BindingProvider bindingProvider) {
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.tracing.enabled",
"true"
);
bindingProvider.getRequestContext().put(
"com.sun.xml.ws.developer.tracing.path",
"trace.log"
);
}
};
port = service.getImplPort(feature);
}
}
import javax.xml.ws.http.HTTPBinding;
import javax.xml.ws.http.HTTPException;
public class UsingHttpCustomResponse {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
try {
// Call web service operation
} catch (HTTPException e) {
if (e.getStatusCode() == 404) {
// Handle 404 error
} else if (e.getStatusCode() == 500) {
// Handle 500 error
}
}
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpAttachments {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setAttachments(true);
}
}
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/myResource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getSomething() {
return "Hello world";
}
}
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
@ClientEndpoint
public class MyWebSocketClient {
@OnOpen
public void onOpen(Session session) {
// Connect to the websocket server
}
@OnClose
public void onClose(Session session, CloseReason reason) {
// WebSocket connection closed
}
@OnMessage
public void onMessage(String message, Session session) {
// Receive message from the websocket server
}
@OnError
public void onError(Throwable t) {
// Error occurred while connecting to the websocket server
}
}
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/myResource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getSomething() {
// Push a new response to the client
return "Hello world";
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpByteStreams {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setChunkedStreamingMode(true);
InputStream stream = binding.getHTTPResponseStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.read(buffer)) != -1) {
// Process the bytes in the buffer
}
}
}
import javax.xml.ws.http.HTTPBinding;
public class UsingHttpChunkSizes {
public static void main(String[] args) {
HTTPBinding binding = (HTTPBinding) port.getBinding();
binding.setChunkStreamSizes(1024);
}
}