Thursday, February 13, 2014

java.lang.OutOfMemoryError: PermGen space

java.lang.OutOfMemoryError: PermGen space

Problem :


We come across this common exception when starting STS Eclipse or trying to compile java classes through maven command.

Exception I Encountered Was :


###################################################################################################################

[ERROR] PermGen space -> [Help 1]
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(Cl
assRealm.java:389)
        at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(
SelfFirstStrategy.java:42)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadCl
ass(ClassRealm.java:259)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm
.java:242)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm
.java:227)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(Cl
assRealm.java:389)
        at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(
SelfFirstStrategy.java:42)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadCl
ass(ClassRealm.java:259)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm
.java:242)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm
.java:227)
        at org.apache.maven.plugin.jar.AbstractJarMojo.createArchive(AbstractJar
Mojo.java:202)
        at org.apache.maven.plugin.jar.AbstractJarMojo.execute(AbstractJarMojo.j
ava:255)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default
BuildPluginManager.java:106)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:208)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryErr
or
###################################################################################################################

Solution :


This exception was caused when i was starting the Eclipse for the very first time and also while i was using the mvn compile command to compile the java classes. To resolve this exception i increased the memory size in command prompt before restarting eclipse and increasing the memory in maven options. See below for the examples.

Example :


- Follow the above steps outlined and you should be able to resolve it :

1)Add this to command line JVM before starting tomcat server : -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 2)For Maven options use this : set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m This should resolve the above exceptions.


Similar Exception :

     

- java.lang.OutOfMemoryError: PermGen space


ORA-06502: PL/SQL: numeric or value error

ORA-06502: PL/SQL: numeric or value error

Problem :


We come across this common exception when we are using PL/SQL or we receive soap related webservice response.

Exception I Encountered Was :


###################################################################################################################

ORA-06502: PL/SQL: numeric or value error

###################################################################################################################

Solution :


This exception was caused when i was trying to assign a value which was big enough for a input value. It started throwing these errors. It was also caused when trying to insert too many characters into a string field.

Make sure the input value you are giving for the web service are not violating the limit set by the web service.

Example :


- Validate the input fields against the web service fields and you should be able to resolve this issue.


Similar Exception :

     

- ORA-06502: PL/SQL: numeric or value error


Tuesday, February 11, 2014

resource is out of sync with the file system


resource is out of sync with the file system

Problem :


We come across this common exception when using eclipse and try to start the tomcat server.

Exception I Encountered Was :


###################################################################################################################

resource is out of sync with the file system ... with may file names listed...

###################################################################################################################

Solution :


This exception was caused when i switched to a different work space and restarted tomcat server. It started throwing these errors. Please follow any of the solutions to vanish the error.

1) Right click on the file or project and select refresh. This should be enough to clear all the errors related to resource is out of sync with the file system exception.

2) You can set the preferences to automatically refresh your project with the following steps :
  • Select Window in eclipse menu then
  • Select Preferences
  • Select & Expand first tab General and then
  • Select Workspace and then
  • Select the option "Refresh Automatically" or "Refresh using native hooks or polling" then
  • Click apply
  • Click Ok

  • Now you are good to go.....


Example :


- Follow the above steps outlined and you should be able to resolve it.


Similar Exception :

     

- resource is out of sync with the file system


Wednesday, January 22, 2014

org.springframework.ws.client.WebServiceTransportException Not Found 404

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/smdealer] threw exception org.springframework.ws.client.WebServiceTransportException: Not Found [404]

Problem :


We come across this common exception when using web services with spring.

Exception I Encountered Was :


###################################################################################################################

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/smdealer] threw exception
org.springframework.ws.client.WebServiceTransportException: Not Found [404]
 at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:624)
 at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:548)
 at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:499)
 at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:348)
 at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:342)
 at com.tracfone.udp.delegate.impl.AgentServiceImpl.authenticate(AgentServiceImpl.java:69)
 at com.tracfone.udp.security.CustomAuthenticationProvider.authenticate(CustomAuthenticationProvider.java:41)
 at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
 at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
 at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthenticatio

###################################################################################################################

Solution :


This exception was caused when i was using incorrect uri for the web service for authentication. The environment variable was invalid. I just updated the environment variable in uri and it worked fine.

Example :


- Pointing the correct URI for the service worked for me.

Similar Exception :

     
- org.springframework.ws.client.WebServiceTransportException: Not Found [404]
- No endpoint mapping found for ....
- Servlet.service() for servlet in context with path threw exception


Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds

Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

Problem :


We come across this common exception when start / restart tomcat web server and it doesn't start in default 45 seconds.

Exception I Encountered Was :


###################################################################################################################

Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

###################################################################################################################

Solution :


Generally this exception is caused when Tomcat Server doesnt start within the default server startup time which is 45 second. To resolve this you can increase the server timeout settings as explained below.

Example :


- Double click on the server in eclipse
- In Overview tab select Timeouts
- For Start (in seconds) increase the time in seconds appropriately
- Save and restart the server
- This should resolve the exception.

Similar Exception :

     
- Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds
- If the server requires more time, try increasing the timeout in the server editor


ERROR: org.springframework.web.context.ContextLoader - Context initialization failed

ERROR: org.springframework.web.context.ContextLoader - Context initialization failed

Problem :


We come across this common exception when using Java Spring application.

Exception I Encountered Was :


###################################################################################################################

ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
###################################################################################################################

Solution :


This exception was caused when i did not add the maven dependencies to the build path. I was using eclipse with maven, so had to include the maven dependencies in the build path as explained below.

Example :


- Adding Maven dependencies in project web deployment assembly : 
          
  • Open project properties(example: In project explorer right Click on project name to select "Properties").
  • Select "Deployment Assembly".
  • Click "Add..." button on the right navigation.
  • Select "Java Build Path Entries" from menu of Directive Type and then click "Next".
  • Select "Maven Dependencies" from Java Build Path Entries menu and then click "Finish".
  • Now the "Maven Dependencies" should be added to the Web Deployment Assembly.
- When using Eclipse WDT and using unmodified and previously working project :
  • If Tomcat is running Stop it
  • Open the "Servers" view: Window then select "Show view" and then select "Other" > Server > Servers
  • Right Click on the Tomcat Server and then select "Clean Tomcat Work Directory".
  • Right Click on the Tomcat Server and then select "Clean"
  • Restart the Tomcat Server
The above solution should resolve the exception.

Similar Exception :

     
- ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

java.lang.ClassFormatError: Duplicate method name signature in class file

java.lang.ClassFormatError: Duplicate method name&signature in class file

Problem :


We come across this common exception when using eclipse.

Exception I Encountered Was :


###################################################################################################################

java.lang.ClassFormatError: Duplicate method name signature in class file

###################################################################################################################

Solution :


This exception was caused when i was importing maven project in my eclipse. After importing the project and starting the server i came across this common exception. Please see the below explanation to resolve the exception.


Example :


When trying to import a already existing Maven project, select / browse the appropriate folder. Then click on finish rather than clicking the next button.

Clicking the next button created a different package structure which actually caused the exception "java.lang.ClassFormatError".

Similar Exception :

     

- java.lang.ClassFormatError: Duplicate method name signature in class file