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)

No comments:

Post a Comment