Wednesday, October 31, 2018

SpringBoot Application on Weblogic 12c

Reading this valid post I've try to deploy a spring boot application to weblogic. I've found some issue about tomcat library exclusion.
To solve I've modified pom.xml dependencies configuration as you can see below:

Monday, October 29, 2018

Linux SSH tunneling using certificate

To connect via ssh on remote host and activate tuneling using a certificate, you need a pem certificate. if you have ppk certificate you can convert.

Saturday, November 11, 2017

Oracle Jdeveloper 12.2.1.3/4 Optimization

 There are some optimization setup for oracle jdeveloper

Add in the end of file MW_HOME \jdeveloper\ide\bin\ide.conf

 

AddVMOption -Xms2048M 
AddVMOption -Xmx4096M 
 

Add in the end of file MW_HOME \jdeveloper\jdev\bin\jdev.conf

#Adds a memory monitor which helps in check current heap used by jdeveloper 
AddVMOption -DMainWindow.MemoryMonitorOn=true 
#ADD the following JVM options towards the end of file 
AddVMOption -XX:+UseStringCache 
AddVMOption -XX:+OptimizeStringConcat 
AddVMOption -XX:+UseCompressedOops 
AddVMOption -XX:+AggressiveOpts 
AddVMOption -XX:+UseConcMarkSweepGC 
AddVMOption -DVFS_ENABLE=true 
AddVMOption -Dsun.java2d.ddoffscreen=false 
AddVMOption -XX:+UseParNewGC 


To manage more jdeveloper installation of the same version set a custom ide user dir using a different path for every installation:


 

on file: MW_HOME \jdeveloper\jdev\bin\jdev.boot


For Windows

ide.user.dir= C:\Users\<so-user>\AppData\Roaming\jdeveloper\12.2.1.3\studio


 For Mac

ide.user.dir=/Users/<so-user>/.jdeveloper/12.2.1.3/studio
 
For Linux
 
ide.user.dir=/home/<so-user>/.jdeveloper/12.2.1.3/studio
 
 

in alternative on 12.2.1.4 you can set on file:

MW_HOME \jdeveloper\jdev\bin\jdev.conf 

AddVMOption -Dide.system.dir=/home/<user>/.jdeveloper/12.2.1.4/wc 

#setting work directory  

AddVMOption -Dide.work.dir=/mnt/c/Users/<user>/workspaces/jdeveloper/12.2.1.4

Saturday, May 13, 2017

java wsdl bypass service check on deploy



we need to disable endpoint testing at system startup. Often the environments are separate, so it is not possible to validate a service in test or production using a development url!

Remove jax_ws_catalog.xml file form the artefact!


On the WS client you can disabl wsdlAddress validation as follow:

MyService service = new MyService();
MyServiceInterface port = service.getMyServicePort();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext().put(
    "set-jaxb-validation-event-handler", Boolean.FALSE);

Wednesday, December 19, 2012

JSF: Read HTTP Header parameters

Issue:
How to read  HTTP Header parameters using JSF?

Solution:
Reading the http headers parameters in JSF is possible using the ExternalContext.

Saturday, November 17, 2012

Oracle ADF Essentials


Oracle Application Development Framework (Oracle ADF) is a Java EE development framework that simplifies and accelerates enterprise application building. Oracle ADF Essentials is a free packaging of this framework  that can be used to develop and deploy applications without licensing costs.

Saturday, October 6, 2012

JSF: setting EL expression programmatically

Issue
Create a JSF component programmatically and setting a property dynamically (eg disabled, visible, etc).

Solution
Java Server Faces provides an expression language (JSF EL)  used in web application pages to access the JavaBeans components in the page. It is possible to set it programmatically using a javax.el.ValueExpression, an abstract class that provides the API for the Unified Expression Language.

Monday, August 6, 2012

Oracle ADF: af:navigationPane instead af:panelTabbed


Issue

Show Database table rows in an ADF Page using tabs: Each tab have to represent a table record and content's information, there could be many tabs to show.

Solution

The tab content has the same structure for every DB table row. It's possible to use the af:panelTabbed and af:showDetailItem for each row, iterating it with an af:iterator.

  <af:panelTabbed>
     <af:iterator>
       <af:showDetailItem>
         .....
         <!-- tab content -->
         .....
       </af:showDetailItem>
     </af:iterator>
  </af:panelTabbed>

This approach has a disadvantage: the page is rendered with each tab and its content, duplicating the tab detail for each rendered tab (tab content could be very complex). If, in the page, there are many tabs it could slow down the page behavior.
An alternative approach could be simulate the tab behavior using an af:navigationPane. In this case a af:forEach iterates the tabs component represented by the af:commandNavigationItem.

Wednesday, March 30, 2011

Oracle JPublisher to call a stored procedure that use PL/SQL Object Collections

When using java, one might need to call up either a pl/sql procedure, functions or a package stored on the database. One way to do this is to use the standard JDBC (Java Database Connectivity) wrapper, but the Pl/SQL data complexity could make that operation difficult, as might be the case with a Pl/SQL object collection.
JPublisher is an Oracle utility that helps create a java wrapper that will represent database entities: User-defined SQL object types, Object reference types (REF types), User-defined SQL collection types (VARRAY types or nested table types), PL/SQL packages, SQL queries and DML statements. You can find more information about JPublisher here: link

Monday, July 6, 2009

The annotation @WebServiceRef

Look at the annotation WebServiceRef that provide to injects a reference to a web service in this my post published on SpiderLogic bog.

To invoke a method on a session bean, a client does not directly instantiate the bean using the new operator. It use the Dependency Injection (DI) to references the session bean. It is a powerful mechanism used from JavaEE 6 to obtain a resource reference on an object field. It is possible to inject various type of resource, as shown in the next picture (see more …).

Sunday, June 28, 2009

Servlet Reval

Look at the differences between 2.4 and 2.5 versions and between 2.5 and 3.0 versions in this my post published on SpiderLogic bog.

Servlet 2.5 vs Servlet 2.4

The Servlet Version 2.5 introduces an important feature, that makes servlets "modern": the use of J2EE 5 Containers. Other relevant new features are the introduction of Multiple Occurrences for servlet mapping and filter mapping (see more…).

Servlet 3.0 vs Servlet 2.5

The  Servlet version 3.0 follows on from the Servlet 2.5 revolutionary road introducing support for annotations and web fragments and support for suspend / resume to allow async support in servlets. Reading Java Servlet Specification 3.0 (proposed final draft) you can see the changes to Servlet 2.5 as very relevant (see more…).

Thursday, June 18, 2009

Java.nio vs Java.io

NIO construction makes I/O faster than traditional I/O. Look at this my post published on SpiderLogic blog.

This document is not a Java.io or a Java.nio manual, or a technical document about Java.io and Java.nio use. It only attempts to compare these two packages, highlighting differences and features in the most simple way. Java.nio presents new stream commrunication aspects and inserts new buffer, file streaming and socket features (see more …).

java.io overview

This package is used for system input and output through data streams, and serialization. Streams support many different kinds of data, including simple bytes, primitive data types, localized characters, and objects (see more …).

File I/O, java.net socket, and more …

NIO API

The I/O performance, often, is a modern application critical aspect. Operative Systems (OS) continuously improve the I/O performance. JVM provides a uniform operating environment that helps the Java programmer in most of the differences between operating-system environments. This makes it faster and easier to write, but the OS feature becomes hidden. To increase IO performance you could write a specific code to access the OS feature directly, but this isn’t the best solution - your code could be OS dependent. Java.nio provides new equipment to address this problem. It provides high-performance I/O features to perform operations on commonly available commercial operating systems today (see more …).

java.nio overview, Non blocking mode, Buffers, Channels, Selector and more …