Home » Posts tagged 'spring'
Tag Archives: spring
If you are getting exception shown below in your Spring test
Caused by: java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Then to fix this error migrate to Spring 3.2 release. Change the maven dependency as shown below
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.0.RELEASE</version> </dependency>
In this short blog, I will show you how you can deploy war file on Tomcat running on OpenShift. For Java, OpenShift supports three deployment options – JbossAS-7, JBossEAP-6, and JBossEWS-1.0 or Tomcat. In all of the three options it supports both binary deployment (war file) and source code deployment(maven project). I have talked about how you can do source code deployment on tomcat in my previous blog.
Step 1: Sign up for an OpenShift Account
If you don’t already have an OpenShift account, head on over to the website and signup with promo code ews. It is completely free and Red Hat gives every user three free Gears on which to run your applications. At the time of this writing, the combined resources allocated for each user is 1.5 GB of memory and 3 GB of disk space.
Step 2: Install the client tools on your machine
Note: If you would rather watch a screencast of this step, check out the following videos where I demo how to install the client tools.
The OpenShift client tools are written in a very popular programming language called Ruby. With OSX 10.6 or later and most Linux distributions, ruby is installed by default so installing the client tools is a snap. Simply issue the following command on your terminal application:
sudo gem install rhc
Step 3 : Setting up OpenShift
The rhc client tool makes it very easy to setup your openshift instance with ssh keys, git and your applications namespace. The namespace is a unique name per user which becomes part of your application url. For example, if your namespace is cix and application name is bookshop then url of the application will be https://bookshop-cix.rhcloud.com/. The command is shown below.
rhc setup -l openshift_login
Step 4 : Creating Tomcat Application
After installing the client tools and setting up OpenShift account, next step is to create the bookshop application. This is a very simple Spring JPA application which has only one entity called Book. So, a user can do CRUD operations on book entity. To create a book entity, execute the command shown below.
rhc app create -a bookshop -t jbossews-1.0
This will create an application container for us, called a gear, and setup all of the required SELinux policies and cgroup configuration. OpenShift will also setup a private git repository for you and propagate your DNS out world wide.
Step 5 : Download the WAR file
Because we are doing binary deployment in this blog, we have to remove the src folder and pom.xml file from git repository and add the war file.
git rm -rf src/ pom.xml git commit -am &quot;removing default files&quot;
Next download the war file from http://bookshop-demo.googlecode.com/files/ROOT.war and copy the war file in webapps directory. The name ROOT for war makes sure that the application is accessible at the root context i.e. http://bookshop-cix.rhcloud.com/.
git add . git commit -am &quot;committing bookshop war file&quot;
Step 6 : Pushing the code to OpenShift
Finally push the code to OpenShift using git.
The git push command upload the binary to the application gear and runs the action hooks specified in .openshift/action_hooks folder.
IBM DeveloperWorks Introducing Spring Roo, Part 4: Rapid application development in cloud with Spring Roo and Cloud Foundry
Take the rapid development of Roo a step further by creating applications to work in the cloud with Cloud Foundry, the first open platform as a service project created by VMWare. Learn more about the environment and then deploy an application into Cloud Foundry using the Roo shell. Read about it here http://www.ibm.com/developerworks/opensource/library/os-springroo4/index.html
Spring Roo is a RAD tool that lets you build applications (mainly web) quickly and easily. Under the hood, Spring Roo is based on OSGI add-on architecture, which makes it easy to extend Spring Roo by adding add-ons. Spring Roo provides commands to create add-ons that can be very easily made available to the Spring Roo user community. In this article, we first talk about Spring Roo architecture, talking about how Spring Roo leverages its own add-on architecture to provide different features, then we will create add-ons using the Roo shell and modify them to suit our needs. Please read the third article at IBM DeveloperWorks.
Suppose you are using Spring component scanning and you don’t want to scan classes in the sub-package you should use <context:exclude-filter> subtag of <context:component-scan> tag as shown below
<context:component-scan base-package="com.test.ws"> <context:exclude-filter type="aspectj" expression="com.test.ws.client.*" /> </context:component-scan>
Here we have defined a aspectj pointcut which will exclude all the classes in the sub-package.