Eric Lemaitre

Ranch Hand
+ Follow
since Jul 03, 2004
Eric likes ...
Hibernate Eclipse IDE Tomcat Server
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
1
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Eric Lemaitre

Greg Charles wrote:In theory, you could add an annotation to suppress the warning: @SuppressWarnings({ "rawtypes", "unchecked" })



Hi Greg,

Yes, I know the workaround and it works, but I really would like to know whether there is something which would allow to eliminate warning from this "cast" without having to do the whole loop to populate the Map.

Not sure at all it is possible, apart the @SuppressWarning annotation trick to hide it under the rug...

Best regards.
11 years ago
Hi all,

I would like to avoid a warning when I "cast" Properties to Map, but I couldn't achieve it so far.

Example:
Properties props = new Properties();
Map<String, String> map = new HashMap<String, String>((Map) props); << Here is the warning, on ((Map) props)

It works in practice, I just would like to get rid of the warning if it is possible.

Best regards.
11 years ago
Hi all,

I strongly consider leaving CA for TX, and I need to know what the best balanced location in TX for climate & jobs could be.
I believe west TX is very dry and east in very wet, but a strip in the middle is well balanced for climate.
I particularly think about Austin, which looked much like CA for me when I went there for a while, especially south Austin like Buda & Kyle.
So what is your opinion for a TX location well balanced with good climate & jobs market?

Best regards.
11 years ago
Hi Wendy,

Wendy Gibbons wrote:when you say read again, do you mean read from the database, or just using java to stream over that variable again?
If it is from the database you don't show us the insert/update statement, and then the next select statement where you get the clob again.



I mean read again from DB, by making a new PreparedStatement and selecting the very same CLOB again, so there was NO insert/update statement at all.

I found my issue, but I had to use a decompiler to find what was wrong.

So I have read a CLOB the "normal way" with a select and a ResultSet, and I make:

Clob clob = resultSet.getClob(1);
..........
Writer writer = clob.setCharacterStream(clob.length());
writer.write("AppendedString");
writer.flush();
writer.close();

With Oracle the CLOB is updated BOTH in memory & DB, but with MySQL BLOB is updated in memory only.
For MySQL flush() & close() do nothing, their code is empty.

So for MySQL to update the CLOB BOTH in memory & DB like Oracle does, you should have such code:

Clob clob = resultSet.getClob(1);
..........
Writer writer = clob.setCharacterStream(clob.length());
writer.write("AppendedString");
resultSet.updateBlob("clob_culumn", clob);
resultSet.updateRow();

Best regards.
Hi all,

I have an existing MySQL CLOB which works with a TEXT set, I want to append some text at the end like this:

Writer writer = clob.setCharacterStream(clob.length());
writer.write("AppendedString");
writer.flush();
writer.close();

But when I read the CLOB again I get the old value, String has not been appended.
This is very basic JDBC stuff and it should work with all DBs, at lead with Oracle it works, so has someone an idea of what is wring with MySQL?

TIA, best regards.
Hi Martin,

Martin Vajsar wrote:Generally you simply use the text you'd run from your SQL client. Try there first to see what is acceptable.

Edit: after rereading, I'd say you'll need to use the native SQL syntax. My first proposition, even if it works, probably won't place the comment at the beginning.



Sadly no, since what I send from the native client may have to be very different from what I can send from JDBC.
In MySqlWorkbench, my stored procedure uses named parameters stated like "@parameter1", which exist and name is correct, but in JDBC as soon as I try to use them inside CallableStatement instead of ? I get some "missing placeholder exception". I must use a ? as place holder and then the parameters settings by name like "setType(name, value)" are still possible, but if I use the parameter names inside the CallableStatement no way.

I have 2 possible workarounds:

CallableStatement statement = connection.prepareCall("{call /* comment */ pkgxcard.get_balance (?,?)}");

CallableStatement statement = connection.prepareCall("{call pkgxcard.get_balance (?,?)} /* comment */");

It doesn't explain the issue, but it allows me to move forward.
Hi Koen,

Koen Aerts wrote:I haven't tried it, but would something like connection.prepareCall("{call pkgxcard.get_balance (?,?)} -- comment") work?



Yes, both of these work:


But I really need this kind of syntax:


Best regards.
Hi Koen,

Koen Aerts wrote:Why do you need the comment inside the call? Would you see it somewhere in the DB logs? If you want to use Oracle hints, should these not go inside the stored procedure instead?



I need it because I have an interceptor which parses the query and will use the comment, to select some specific DB in a cluster for example.
And as it is a standard SQL comment it MUST not mess with the query anyway, the content of a correctly formed SQL comment should be ignored by MySQL server, so it is totally abnormal IMHO that a comment inside a query messes anything. So unless I made a mistake with this comment so I would need the correct syntax, I need an explanation and a workaround.

Best regards.
Hi Paul

Paul Clapham wrote:Well, if you're just looking for a solution, then I would just move the comment out of the string literal. I.e. not this:

but this:



No, not a fit, because I need the comment to be sent as well, what you describe above is a Java comment which will make exactly the same as sending the query without any comment at all, which of course works.
If you prefer, I need:

The "mysql_hint_inside_comment" will be interpreted on server side while the call "{call pkgxcard.get_balance (?,?)}" would be executed along as well.

Thanks, but I still need further help.
Hi all,


I have a plain stupid call of stored procedure inside a CallableStatement of a JDBC program:
CallableStatement statement = connection.prepareCall("{call pkgxcard.get_balance (?,?)}");

Works fine of course.

But if I try to insert a standard SQL comment:
CallableStatement statement = connection.prepareCall("/* comment */{call pkgxcard.get_balance (?,?)}");

Then it works with Oracle but FAILS with MySQL (V-5.1.18) with:

java.sql.SQLException: Parameter number 1 is not an OUT parameter
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.CallableStatement.checkIsOutputParam(CallableStatement.java:690)
at com.mysql.jdbc.CallableStatement.registerOutParameter(CallableStatement.java:1881)
at org.apache.commons.dbcp.DelegatingCallableStatement.registerOutParameter(DelegatingCallableStatement.java:94)
at db.test.StoredProcedureTest.testBalance(StoredProcedureTest.java:36)

So obviously adding a correct comment /**/ messes up with the parameters of CallableStatements with MySQL. Does anyone has any idea about this?

TIA, best regards.
Hi all,

I have a legacy Struts application, and I want to use Strut for all legacy pages and Wicket for a new one.
So I made the project, it works as a standalone context with Tomcat, Wicket is a Filter of course, so nothing should prevent me logically from using both Struts as a Servlet & Wicket as a Filter in the same Tomcat container.

Wicket relevant code is:
public class TEST_Application extends WebApplication
{
// Wicket method which allows to initialize the Web Application
public void init()
{
super.init();
// Keep windows titles tidy
getMarkupSettings().setStripWicketTags(true);
mountBookmarkablePage("/project/test/page", Page.class);
}
}

JSP menu index.jsp is:
"/project/test/page"

WEB.xml is:
<filter>
<filter-name>PROJECT</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>package.TEST_Application</param-value>
</init-param>
<init-param>
<param-name>configuration</param-name>
<param-value>development</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PROJECT</filter-name>
<url-pattern>/project/test/page*</url-pattern>
</filter-mapping>

But it looks like there is no way the Filter is recognized, each time I attempt to access the new page I get a 404 NOT FOUND error "The requested resource (/project/test/page) is not available".

Of course I made many tests changing Filter's "url-pattern" without any success.

Has someone any idea of what could be wrong?

Best regards.
Hi all.

I have a standard RESTful application (Jersey) which must call the equivalent WebService (Axis) on same TomCat server , both applications being mixed together (the basic Axis example plus the tiny REST stuff), the whole stuff linked with Spring.

My problem is: REST call works, Axis call works, call of a REST HelloWorld which calls the same under Axis works, call of Hibernate template from an autonomous application with Spring set Hibernate DAO works, BUT when I attempt to call an Axis method from a REST method with a call to Hibernate it fails since Hibernate template DAO is no longer injected, in fact when REST application calls Axis then Spring literally doesn't work any longer on Axis parts.

Would you have some ideas, kind of use a Filter for REST instead of a Servlet perhaps ? I would like to understand why Axis part of my web application becomes unable to use Spring when it is called by a REST client.

Code excerpts & interesting configs, all within the same WebApp :

REST client Code:

// Appel from WS Axis
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(WS_URL));
call.setOperationName("findAllUsersCreatedAtDate" );

String newDate = date.replace('/', '_');
Object[] params = {newDate};

Object result = call.invoke(params); <<< It fails here

------------------
Code of called WS Axis service:

public class IpeUserServiceWS
{
private IpeService service = new IpeServiceImpl(); <<< Hard coded since not initialized by Spring
public String findAllUsersCreatedAtDate(String date)
{
String wsResult = "Users created at date " + date + ": ";
String newDate = date.replace('_', '/');
List<User> users = service.findAllUsersCreatedAtDate(newDate); <<< We go inside here for service implementation

------------------
Implementation code of called service:

public class IpeServiceImpl implements IpeService
{
private IpeDao ipeDao = new IpeDaoHibernateImpl(); <<< Hard-coded since not initialized by Spring
@Override
public List<User> findAllUsersCreatedAtDate(String date)
{
return ipeDao.findAllUsersCreatedAtDate(date); <<< Then inside here for Hibernate DAO

------------------
Implementation code of called DAO:

public class IpeDaoHibernateImpl extends HibernateDaoSupport implements IpeDao
{
@SuppressWarnings("unchecked" )
@Override
@Transactional
public List<User> findAllUsersCreatedAtDate(String date)
{
User user = new User();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy" );
try
{
user.setCreated(sdf.parse(date));
} catch (ParseException e)
{
e.printStackTrace();
}
List<User> users = getHibernateTemplate().findByExample(user); <<< Final failure here for Spring didn't initialized HibernateTemplate, but it does for autonomous application

------------------
web.xml config:

<web-app>
<display-name>IPE User Service WS+RESTful Application</display-name>

<!-- Just prevent Spring of complaining -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>winweb_ipeuserservice_rest_axis</param-value>
</context-param>
<!-- Location of log4J configuration file -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<!-- Location of Spring configuration file -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/SpringApplicationContext.xml</param-value>
</context-param>
<!-- Necessary for Spring -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>

<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>

<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>

<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>

<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.winweb.ipe.rest.IpeUserServiceRESTfulApplication</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

<!-- uncomment this if you want the admin servlet -->
<!-- <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping> -->

<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>

<!-- currently the W3C havent settled on a media type for WSDL; http://www.w3.org/TR/2003/WD-wsdl1 [...] ietf-draft
for now we go with the basic 'it's XML' response -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>

<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>

<welcome-file-list id="WelcomeFileList">
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jws</welcome-file>
</welcome-file-list>

</web-app>

------------------
Spring config:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/sch [...] ns-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/sch [...] xt-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/sch [...] tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/sch [...] ">

<!-- For autowire annotations -->
<context:annotation-config />

<context:component-scan base-package="com.winweb.ipe" />

<!-- DO NOT FORGET the @Transactional annotations in your code -->
<tx:annotation-driven transaction-manager="transactionManager" />

<!-- Inject the logger -->
<bean id="logger"
class="org.springframework.beans.factory.config.CommonsLogFactoryBean">
<property name="logName" value="log" />
</bean>

<!-- JPA configuration stuff -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!-- DataBase related parameters -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</prop>
<prop key="hibernate.connection.url">jdbc:mysql://localhost/intuit_ipe</prop>
<prop key="hibernate.connection.username">intuit_user</prop>
<prop key="hibernate.connection.password">intuit</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.bytecode.use_reflection_optimizer">false</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.winweb.ipe.model.User</value>
</list>
</property>
<!-- <property name="configLocation" value="classpath:/hibernate.cfg.xml"
/> -->
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
<property name="namingStrategy" ref="namingStrategy" />
</bean>
<bean id="namingStrategy" class="org.hibernate.cfg.ImprovedNamingStrategy" />

<!-- Inject here the relevant persistence implementation to be used in service -->
<!-- <bean id="ipeServiceWS" class="com.winweb.ipe.ws.IpeUserServiceWS">
<property name="service"> <ref local="ipeService" /> </property> </bean> -->
<!-- Inject here the relevant DAO to be used in service implementation -->
<bean id="ipeService" class="com.winweb.ipe.dal.IpeServiceImpl">
<property name="ipeDao" ref="hibernateDAO" />
</bean>
<bean id="hibernateDAO" class="com.winweb.ipe.dal.dao.IpeDaoHibernateImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
<property name="jdbcExceptionTranslator" ref="jdbcExceptionTranslator" />
</bean>
<bean id="jdbcExceptionTranslator"
class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator" />

<!-- Don't forget transactional context or DB inserts won't ever occur since
no commit -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="transactionalContext"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="proxyTargetClass" value="true" />
<property name="target">
<ref local="ipeService" />
</property>
<property name="transactionAttributes">
<props>
<prop key="findUser">PROPAGATION_REQUIRED</prop>
<prop key="createUser">PROPAGATION_REQUIRED</prop>
<prop key="deleteAllUsers">PROPAGATION_REQUIRED</prop>
<prop key="findAllUsers">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

</beans>

------------------
Test client to call Axis works:

Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(WS_URL));
call.setOperationName(new QName("HelloWorldWS", "sayHello" ));

Object[] params = {"Message from WS test client"};
Object result = call.invoke(params);

System.out.println("Result of WS test is: " + result);

------------------
Populate test of DB which uses Spring to configure DAO works:

public class LocalPopulateTest extends TestCase
{
private static final String SPRING_CONFIG_FILE = "C:/Developpement/Java/eclipse/workspace/WinWeb WS-REST/resources/axis_plus_rest/WEB-INF/classes/SpringApplicationContext.xml";

private IpeService service; // Initialized by Spring's bean "ipeService"

// Clear the local DataBase
public void testClearAll()
{
service.deleteAllUsers();

List<User> users = service.findAllUsers();

assertEquals(true, users.isEmpty());
}

// Populate a local DataBase
public void testPopulate()
{
User user = new User();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy" );
try
{
user.setCreated(sdf.parse("12/31/2015" ));
} catch (ParseException e)
{
e.printStackTrace();
}
service.createUser(user);

List<User> users = service.findAllUsers();

assertEquals(1, users.size());
}

protected void setUp() throws Exception
{
super.setUp();
ApplicationContext ctx = new FileSystemXmlApplicationContext( SPRING_CONFIG_FILE );
service = ( (IpeService) ctx.getBean( "ipeService" ) );
}

protected void tearDown() throws Exception
{
super.tearDown();
}

public static void main(String[] args)
{
junit.swingui.TestRunner.run(LocalPopulateTest.class);
}
}

------------------

So Spring doesn't work to inject the Hibernate DAO only when Axis is called from REST.

Ideas? Transform REST Servlet into a Filter maybe?
13 years ago
Hi all,

I was talking recently with a recruiter, his advices and comments sounded so good to me that I wanted to share with the community (he accepted), please note this is relevant for sure for US only so far (so don't contact this guy if you work outside USA). So here they are:

PS: I see a lot of resumes as a recruiter and would like to share these
thoughts with you. Of the aforementioned 500 resumes, many of them were
fantastic but not right for these particular jobs. I received many, many
more resumes which had horrible presentation, grave errors in style, and
a variety of other mistakes. Companies that are hiring are being
extraordinarily picky right now, and a bad resume can really hurt your
job search prospects. A good resume will never guarantee that you get
hired, but a bad resume will insure that you never even get an
opportunity to interview.

Here are some thoughts on resumes:


1)As a recruiter I ask these questions: 1) Where has someone worked 2)
What do they do? 3) Where have they studied 4) What skills do they have
5) Where do they live? Your resume should answer these questions for me
within a 5 second glance of the resume. Even consultants who have worked
with numerous clients in the last 10 years (like myself) can answer
these questions with a clean, simple resume.

2) Always include your name, e-mail address, and telephone on a resume.
Do not presume that your resume will remain attached to the e-mail. I
probably received 15 resumes that were missing contact information. I
prefer that resumes have the contact information written in the body of
the text instead of the header/footer in Word. This makes it much easier
to copy and paste when I am communicating with my engineer clients

3) Do not send a link to your on-line resume if you expect me to read
it. I am pretty good about going out and "fetching" resumes, but this
is the easiest way for your resume application to be lost in the
shuffle. Perfectly fine if you are passively looking, but if you are
doing an active job search, send me a word/PDF/Text resume.

4) Resumes should be at most 2, perhaps three pages in length. Most
recruiters in my position do not bother to read past the first page, so
whatever important information you have, put it up front and center. It
is fine to have an expanded resume if a company asks for it, but keep in
mind that neither your average recruiter nor your typical hiring
managers will read past the 2nd page in Silicon Valley.

5) If you have written your resume by adding one position on top of the
other, I guarantee you have a resume that will repel, rather than
attract employers. I have received numerous 10 page resumes listing
consulting assignments going back to 1998. Imagine trying to read
through hundreds of these in the course of trying to fill a position! I
often can't tell where someone worked, went to school, or what they do
after reading these types of resumes.

6) The best candidates I see typically have the simplest resumes. The
worst candidates invariably have the longest, most confusing resumes. A
typical example - a guy who I hired at Salesforce had 10 years of work
experience at BEA & Oracle, a PhD in Computer Science from CalTech, and
a one page resume.

7) Experiment - copy and paste your resume into a web browser and mail
it to yourself. Try it in text and other formats. This is how the
engineering managers will most likely read it on their
blackberry/iPhone, etc, so if you have weird formatting issues, I would
recommend that you re-write your resume. Fancy fonts, headers/footers, &
tables often lead to really bad resume presentation when you need it
most.

8) Keep in mind that most recruiters are buried in resumes right now,
and that if you can talk to the recruiter on the phone, this is a REALLY
good idea. Many resumes are not even being read by your average
corporate recruiter, especially if you applied on-line.


Mark Dinan
mark.dinan@dinanrecruiting.com
www.linkedin.com/in/markdinan


Best regards.
14 years ago
Hi all,

Tim Holloway wrote:I started seeing faint stirrings, beginning just this week. But one swallow does not make a Summer. We'll see if if builds.



I confirm there is some renewal of interest in hiring perspectives, in CA at least, since the beginning of Summer, so since July.
But probably in US (I haven been here for less than 2 years so just a guess) both July an August are quite dull since many people are on vacation so projects are a little on hold, have to wait for September for a more realistic glance of what is happening. Anyway before Summer market was clearly flat dead, now it clearly is much less inactive. I am still longing to have interviews again, I keep myself busy meanwhile with my open source project.

Best regards.
14 years ago
Hi,

raghunath venkat wrote:I return back and learnt new technologies(hibernate , spring).And contributing in open source projects.Present I want to rebuild my career.How can I approach with this gap? Will Employers consider my situation?



Open source projects are as technically demanding as real paid projects, so simply state you participated in open source projects to keep your skills up to date, it should be enough if the technical interview confirms it.

Best regards.
14 years ago