Navigation Bar

Sunday, October 25, 2009

Jakarta Struts : Common Errors

 When starting tomcat if you get Windows Sockets error: 0: JVM_Bind, it means that already some other process is running on that port

On the command prompt you can do the following

C:\Users\winni>netstat -ano | findstr :8080
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7112
Now open the task manager, and in process details find for PID 7112 and do an End Task.

Below is the detailed error
SEVERE: Error initializing endpoint
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.(ServerSocket.java:185)
        at java.net.ServerSocket.(ServerSocket.java:141)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:493)
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:503)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:259)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:411)
Oct 25, 2025 10:37:05 AM org.apache.catalina.startup.Catalina load
SEVERE: Catalina.start
LifecycleException:  Protocol handler initialization failed: java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1018)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:503)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:259)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:411)
Oct 25, 2025 10:37:05 AM org.apache.catalina.startup.Catalina load

If the conflicting process cannot be terminated or is a critical system service, you can change the port Tomcat uses. 
  • Locate the server.xml file in your Tomcat installation's conf directory. 
  • Modify the port attribute in the element (for HTTP, HTTPS) and the element (for shutdown port) to an unused port number. 

Example for changing the HTTP port to 8081:
<Connector port="8080" protocol="HTTP/1.1" 
    maxThreads="150" connectionTimeout="20000" 
    redirectPort="8443" />

Error when running struts 1.1 on Java 21.0.6 version
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: [org.apache.struts.taglib.html.MessagesTei]
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:546)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:394)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:330)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:281)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: [org.apache.struts.taglib.html.MessagesTei]
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:35)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:267)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:127)
	org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:296)
	org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:190)
	org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:403)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:456)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1284)
	org.apache.jasper.compiler.Parser.parse(Parser.java:125)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:240)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:188)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:330)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:281)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.ClassCastException: class org.apache.struts.taglib.html.MessagesTei cannot be cast to class jakarta.servlet.jsp.tagext.TagExtraInfo (org.apache.struts.taglib.html.MessagesTei is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @60fa3495; jakarta.servlet.jsp.tagext.TagExtraInfo is in unnamed module of loader java.net.URLClassLoader @2b05039f)
	org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:294)
	org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:190)
	org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:403)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:456)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1284)
	org.apache.jasper.compiler.Parser.parse(Parser.java:125)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:240)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:188)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:330)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:281)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Errors when compiling you Struts application in Eclipse
Target runtime apache tomcat v6.0 is not defined
Issue 1: Target Runtime Not Defined
Step 1: Define Apache Tomcat v6.0 in Eclipse

Window → Preferences
Expand Server → Select Runtime Environments
Click Add...
Select Apache Tomcat v6.0 (under Apache)
Click Next
Browse to your Tomcat 6.0 installation directory
Select your JRE (Java 1.6.0_21)
Click Finish
Click OK to close Preferences


Step 2: Assign Runtime to Your Project

Right-click project → Properties
Go to Targeted Runtimes
Check the box for Apache Tomcat v6.0
Click Apply


Java compiler does not match the verison of the installed java project facet
Issue 2: Java Compiler vs Project Facet Mismatch
Step 1: Check Project Facets

Right-click project → Properties
Go to Project Facets
You'll see:

Java - should be 6.0 (or 5.0 minimum for autoboxing)
Dynamic Web Module - probably 2.5 or 2.4

God's Word for the day
The need of reflection and self control
Before you speak, learn,
  And before you fall ill take care of your health
Before judgement comes, examine yourself
  and at the time of scrutiny you will find forgiveness
Before falling ill, humble yourself
  And when you have sinned repent
Sirach 18:19-21

Concerning self deception 
Not everyone who says to me 'Lord, Lord,' will enter the kingdom of heaven,
  But only the one who does the will of my Father in Heaven.
On that day many will say to me, 'Lord, Lord, did we not prophesy in your name,
  And cast out demons in your name, And do many deeds of power in your name?
Then I will declare to them, 'I never knew you; go away from me you evil doers.'
Mathew 7:21-23

No comments:

Post a Comment