-
Notifications
You must be signed in to change notification settings - Fork 4
J2EE Web Services
- REST with Java (JAX-RS) using Jersey - Tutorial
- JPA 2.0 with EclipseLink - Tutorial
- Create rich data-centric web applications using JAX-RS, JPA, and Dojo
- Spring Tutorial - Installation and setup
- Creating a Batch Service
- Java Keystore Tutorial
- Two-way SSL Java Example
- Java HTTPS client certificate authentication
- Client-authenticated TLS handshake
- Introducing TLS with Client Authentication
- Securing IoT devices and gateways
- Mutual TLS
- Intro to Jedis – the Java Redis Client Library
- Using Amazon ElastiCache for Redis To Optimize Your Spring Boot Application
- How to design a REST API
- HTTP request methods
- Resource Modeling in REST APIs
.bash_proifle:
export M2_HOME=/Applications/apache-maven-3.0.5 export PATH=$PATH:$M2_HOME/bin export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home export MAVEN_OPTS="-Xmx2048m -Xdebug -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
and in terminal,
mvn -P devint-test jetty:run
Once server started, set a break point in eclipse, create a remote debug configuration by connecting to localhost and port 4000. Hit enter on the command line to restart Jetty, then hit the web service, the breakpoint shall take effect.
public OAuth2RestOperations oAuth2RestOperations() {
ClientCredentialsAccessTokenProvider provider = new ClientCredentialsAccessTokenProvider();
ClientCredentialsResourceDetails clientResourceDetails = new ClientCredentialsResourceDetails();
clientResourceDetails.setClientId(clientId);
clientResourceDetails.setClientSecret(clientSecret);
clientResourceDetails.setAccessTokenUri(tokenUri);
OAuth2AccessToken accessToken = provider.obtainAccessToken(clientResourceDetails,
new DefaultAccessTokenRequest());
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(clientResourceDetails,
new DefaultOAuth2ClientContext(accessToken));
CloseableHttpClient client = HttpClients.custom().disableCookieManagement().setMaxConnPerRoute(1000)
.setMaxConnTotal(1000).build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(client);
requestFactory.setReadTimeout(1000000);
requestFactory.setConnectTimeout(1000000);
restTemplate.setRequestFactory(requestFactory);
return restTemplate;
}
To make a call using it,
ResponseEntity<MerchantResponse[]> apiResponse = oAuth2RestOperations.exchange(serviceUrl, HttpMethod.POST, requestEntity,MerchantResponse[].class);
jmap -dump:format=b,file=user_heap.hprof <pid>
or Add the below JVM property for the container.
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap/out_of_memory_<any_number_that_uniquely_identifies_the_container>.hprof
Reference: HOW TO CAPTURE HEAP DUMP?
Create connection to IBM WebSphere MQ:
this.factory = new MQConnectionFactory();
this.factory.setHostName(this.hostName);
this.factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
this.factory.setPort(this.port);
this.factory.setChannel(this.channelName);
this.factory.setQueueManager(this.queueManagerName);
this.con = this.factory.createConnection(this.userName, this.password);
Receiving messages:
public void receiveMessages() {
try {
Session session = this.con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
Queue queue = session.createQueue(this.queueName);
MessageConsumer consumer = session.createConsumer(queue);
consumer.setMessageListener(new MQMessageListener(this));
this.con.start();
} catch (Exception ex) {
LOG.error("Error receiving messages: {}", ex);
restart(); //Trying to connect to MQ Again Once
}
}
Message Receiver:
public class MQMessageListener implements MessageListener, Serializable {
public MQMessageListener(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void onMessage(Message message) {
TextMessage mqMessage = (TextMessage) message;
try {
String textMessage = mqMessage.getText();
this.receiver.handleNewMessage(textMessage);
mqMessage.acknowledge();
} catch (Exception ex) {
LOGGER.error(" Error in receiving message from MQ:{}", ex);
receiver.restart();
}
}
}