How to test Soap services using Metro on Java SE
package com.services;
import java.util.Date;
import javax.xml.ws.*;
/**
*
* @author name
*/
public class ServicePublisher {
public static void main(String[] args){
CalculatorServiceImpl calculatorServiceImpl = new CalculatorServiceImpl();
Endpoint.publish("http://127.0.0.1:10000/service", calculatorServiceImpl);
System.out.println("Service Started: " + new Date().toString());
}
}
Friday, June 6, 2014
Wednesday, March 19, 2014
JSF 2.2 Spring 4.X Configuration
JSF 2.2 with Spring 4.X
File : web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<!-- Configuration locations must consist of one or more comma- or space-delimited
fully-qualified @Configuration classes. Fully-qualified packages may also be
specified for component-scanning -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.org.config.AppConfig</param-value>
</context-param>
<!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<context-param>
<param-name>contextAttribute</param-name>
<param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>AppUserServlet</servlet-name>
<servlet-class>com.org.servlet.AppUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AppUserServlet</servlet-name>
<url-pattern>/AppUserServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Initialize Web Config
import org.springframework.security.web.context.*;
public class SecurityWebApplicationInitializer
extends AbstractSecurityWebApplicationInitializer {
public SecurityWebApplicationInitializer() {
super(WebSecurityConfig.class);
}
}
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder
.inMemoryAuthentication().withUser("test").password("test").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/faces/login.xhtml")
.permitAll();
}
//http://www.petrikainulainen.net/programming/spring-framework/adding-social-sign-in-to-a-spring-mvc-web-application-configuration/
@Override
public void configure(WebSecurity web) throws Exception {
web
//Spring Security ignores request to static resources such as CSS or JS files.
.ignoring()
.antMatchers("/appContextRoot/faces/javax.faces.resource/**");
}
}
Get AppContext from FacesContext;
ApplicationContext ctx = org.springframework.web.jsf.FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());
File : web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<!-- Configuration locations must consist of one or more comma- or space-delimited
fully-qualified @Configuration classes. Fully-qualified packages may also be
specified for component-scanning -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.org.config.AppConfig</param-value>
</context-param>
<!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<context-param>
<param-name>contextAttribute</param-name>
<param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>AppUserServlet</servlet-name>
<servlet-class>com.org.servlet.AppUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AppUserServlet</servlet-name>
<url-pattern>/AppUserServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Initialize Web Config
import org.springframework.security.web.context.*;
public class SecurityWebApplicationInitializer
extends AbstractSecurityWebApplicationInitializer {
public SecurityWebApplicationInitializer() {
super(WebSecurityConfig.class);
}
}
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder
.inMemoryAuthentication().withUser("test").password("test").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/faces/login.xhtml")
.permitAll();
}
//http://www.petrikainulainen.net/programming/spring-framework/adding-social-sign-in-to-a-spring-mvc-web-application-configuration/
@Override
public void configure(WebSecurity web) throws Exception {
web
//Spring Security ignores request to static resources such as CSS or JS files.
.ignoring()
.antMatchers("/appContextRoot/faces/javax.faces.resource/**");
}
}
Get AppContext from FacesContext;
ApplicationContext ctx = org.springframework.web.jsf.FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());
Labels:
applicationContext,
jsf,
jsf2,
jsf2.2,
spring,
Spring Java config
Friday, March 14, 2014
JSF 2.2 HTML5
With JSF 2.2 you can now use html5 syntax and all you need for Jsf to process the element is jsf:id="", html passthroughs are allowed now, See example below!
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://xmlns.jcp.org/jsf/passthrough"
xmlns:jsf="http://xmlns.jcp.org/jsf">
<head jsf:id="head">
<title>Facelet Title</title>
<h:outputStylesheet name="css/app.css"/>
</head>
<body>
<input class="span3" required="required" value="#{index.name}" jsf:id="name" name="name" placeholder="Full Name" type="text"/>
</body>
</html>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://xmlns.jcp.org/jsf/passthrough"
xmlns:jsf="http://xmlns.jcp.org/jsf">
<head jsf:id="head">
<title>Facelet Title</title>
<h:outputStylesheet name="css/app.css"/>
</head>
<body>
<input class="span3" required="required" value="#{index.name}" jsf:id="name" name="name" placeholder="Full Name" type="text"/>
</body>
</html>
Java Enum In Switch Statements
How to use Java Enums in Switch statements; use Java 1.7 and up.
/**
*
* @author h@ppyF@ce
*/
public class LogicClass {
enum Month {
JANUARY(1),
FEBRUARY(2);
private final int monthCode;
Month(int monthCode) {
this.monthCode = monthCode;
}
public int getMonthCode() {
return monthCode;
}
};
public static void main(String... args) {
Month ci = Month.FEBRUARY;
switch (ci) {
case JANUARY:
System.out.println("1st");
break;
case FEBRUARY:
System.out.println("2nd");
break;
default:
System.out.println("default");
}
}
}
/**
*
* @author h@ppyF@ce
*/
public class LogicClass {
enum Month {
JANUARY(1),
FEBRUARY(2);
private final int monthCode;
Month(int monthCode) {
this.monthCode = monthCode;
}
public int getMonthCode() {
return monthCode;
}
};
public static void main(String... args) {
Month ci = Month.FEBRUARY;
switch (ci) {
case JANUARY:
System.out.println("1st");
break;
case FEBRUARY:
System.out.println("2nd");
break;
default:
System.out.println("default");
}
}
}
Thursday, August 8, 2013
Running an Apollo Broker Instance (from Apollo website)
Running an Apollo Broker Instance (from Apollo website)
Assuming you created the broker instance under
/var/lib/mybroker all you need to do start running the broker instance is execute:/var/lib/mybroker/bin/apollo-broker run
Now that the broker is running, you can optionally run some of the included examples to verify the the broker is running properly.
Web Administration
Apollo provides a simple web interface to monitor the status of the broker. Once the admin interface will be accessible at:
The default login id and password is
admin and password.Saturday, June 1, 2013
Some code borrowed from BalusC.
//ServletCode for CSV Export
public static <T> void writeCsv (List<T> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
System.out.println("Instance NextType: "+csv.getClass().getCanonicalName()+ " Size: "+ csv.size());
//add headers here
writer.append("ID").append(separator);
writer.append("LOCATION").append(separator);
writer.append("NAME").append(separator);
writer.append("TYPE").append(separator);
writer.append("FLAG").append(separator);
writer.append("TIME1").append(separator);
writer.append("SYSTIME").append(separator);
writer.append("USERID");
writer.newLine();
for (T row : csv) {
if(row instanceof entities.Item){
Item item = (entities.Item)row;
Integer itemid = item.getId();
writer.append(itemid.toString()).append(separator);
Date enteredtime = item.getTime1();
if(time1 == null) {
writer.append(" ").append(separator);
}
else
writer.append(enteredtime1.toString()).append(separator);
long userid = item.getUserid();
writer.append(String.valueOf(userid));
.....
}
writer.newLine();
}
writer.flush();
}
@EJB
private beans.ItemFacade ejbFacade;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Item> listOfObj = new ArrayList<Item>();
listOfObj = ejbFacade.findAll();
List<Item> csvList = new ArrayList<Item>();
List<Item> csv = listOfObj;
response.setHeader("Content-Type", "text/csv");
response.setHeader("Content-Disposition", "attachment;filename=\"file"+System.currentTimeMillis()+".csv\"");
writeCsv(csv, ',', response.getOutputStream());
}
//ServletCode for CSV Export
public static <T> void writeCsv (List<T> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
System.out.println("Instance NextType: "+csv.getClass().getCanonicalName()+ " Size: "+ csv.size());
//add headers here
writer.append("ID").append(separator);
writer.append("LOCATION").append(separator);
writer.append("NAME").append(separator);
writer.append("TYPE").append(separator);
writer.append("FLAG").append(separator);
writer.append("TIME1").append(separator);
writer.append("SYSTIME").append(separator);
writer.append("USERID");
writer.newLine();
for (T row : csv) {
if(row instanceof entities.Item){
Item item = (entities.Item)row;
Integer itemid = item.getId();
writer.append(itemid.toString()).append(separator);
Date enteredtime = item.getTime1();
if(time1 == null) {
writer.append(" ").append(separator);
}
else
writer.append(enteredtime1.toString()).append(separator);
long userid = item.getUserid();
writer.append(String.valueOf(userid));
.....
}
writer.newLine();
}
writer.flush();
}
@EJB
private beans.ItemFacade ejbFacade;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Item> listOfObj = new ArrayList<Item>();
listOfObj = ejbFacade.findAll();
List<Item> csvList = new ArrayList<Item>();
List<Item> csv = listOfObj;
response.setHeader("Content-Type", "text/csv");
response.setHeader("Content-Disposition", "attachment;filename=\"file"+System.currentTimeMillis()+".csv\"");
writeCsv(csv, ',', response.getOutputStream());
}
Wednesday, February 6, 2013
JSF Logged Interceptor
Logged JavaEE Interceptor for JSF logging
import java.io.Serializable;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
/**
*
* @author happyFace
*/
@Logged
@Interceptor
public class LoggedInterceptor implements Serializable {
public static final Logger LOGGER = Logger.getLogger(LoggedInterceptor.class.getName());
public LoggedInterceptor() {
}
@AroundInvoke
public Object logMethodEntry(InvocationContext invocationContext)
throws Exception {
LOGGER.log(Level.INFO, "Entering method: {0} in class {1} at Time {2}.",
new Object[]{invocationContext.getMethod().getName(),
invocationContext.getMethod().getDeclaringClass().getName(),
new Date()});
return invocationContext.proceed();
}
//}
}
---------------------------------------------------------------------------
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.interceptor.InterceptorBinding;
/**
*
* @author happyFace
*/
@Inherited
@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Logged {
}
--------------------------------------------------------------------------------------
import java.security.Principal;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.interceptor.Interceptors;
/**
*
* @author happyFace
*/
@Named
@ViewScoped
@Interceptors({ LoggedInterceptor.class})
public class Index {
private String name = "Get A Lawyer";
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
public String logout(){
Principal userPrincipal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
System.out.println("Principal: "+userPrincipal);
return "login?faces-redirect=true";
}
}
Subscribe to:
Posts (Atom)