Getting Apache Tomcat up and running in Mac OS 10.9 - macos

I have installed Apache Tomcat on my Macbook Pro and run the startup script...
$ ./startup.sh
Using CATALINA_BASE: /Library/Tomcat/Home
Using CATALINA_HOME: /Library/Tomcat/Home
Using CATALINA_TMPDIR: /Library/Tomcat/Home/temp
Using JRE_HOME: /Library/Java
Using CLASSPATH: /Library/Tomcat/Home/bin/bootstrap.jar:/Library/Tomcat/Home/bin/tomcat-juli.jar
Tomcat started.
browsing to localhost in any browser shows the "It Works!" page (default for Apache on Mac I think) but browsing to localhost:8080 just shows "Unable to connect..."
Running
netstat -anp tcp | grep 8080
shows that nothing is listening on port 8080. Can anyone help me sort this out?
EDIT: I have checked the logs directory and only a catalina.out was created. Here are the contents
$ cat /Library/Tomcat/Home/logs/catalina.out
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
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 java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
I tried updating to the latest JDK and JRE but I am still getting this when trying to start Tomcat

In server.xml check if you have configured port="8080" instead of 80:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />

Related

Problems when trying to create proxy in WSO2

I was training the creating of proxy in wso2, in the tutorial: https://docs.wso2.com/display/ESB490/Sending+a+Simple+Message+Through+the+ESB
and had some problems in pass 2 of: 'Building and deploying SimpleStockQuoteService', when i try to run the wso2server.bat, i receive the message bellow:
"Starting Sample Axis2 Server ..."
Using AXIS2_HOME: C:\Oxaguia spk\Trabalhos\Coach IT\Piramidal\Servers\wso2ei-6.1.1\samples\axis2Server
Using JAVA_HOME: C:\Program Files\Java\jdk1.8.0_121
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Server could not start due to class loading issue java.lang.NoSuchMethodException: samples.util.SampleAxis2Server.startServer([Ljava.lang.String;)
I saw in the internet that it would be because of my jdk version, and i tried the 1.7.0_45 and 1.6.0_45. In this case i had this message:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
The AXIS2_HOME was created too with the way: 'C:\Oxaguia spk\Trabalhos\Coach IT\Piramidal\Servers\wso2ei-6.1.1\samples\axis2Server'
I really don't know what happening. If someone could help me i would stay quite grateful.
ps: After tried the tutorial of 584, to change the axis2server.bat, in the git hub, i receive this message:
"Starting Sample Axis2 Server ..."
Using AXIS2_HOME: C:\Oxaguia spk\Trabalhos\Coach IT\Piramidal\Servers\wso2ei-6.1.1\samples\axis2Server
Using JAVA_HOME: C:\Program Files\Java\jdk1.8.0_144
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[main] INFO samples.util.SampleAxis2ServerManager - [SimpleAxisServer] Starting
[SimpleAxisServer] Using the Axis2 Repository : C:\Oxaguia spk\Trabalhos\Coach IT\Piramidal\Servers\wso2ei-6.1.1\samples\axis2Server\repository
[SimpleAxisServer] Using the Axis2 Configuration File : C:\Oxaguia spk\Trabalhos\Coach IT\Piramidal\Servers\wso2ei-6.1.1\samples\axis2Server\repository\conf\axis2.xml
[main] WARN org.apache.axiom.util.stax.dialect.StAXDialectDetector - Unable to determine dialect of the StAX implementation at jar:file:/C:/Oxaguia%20spk/Trabalhos/Coach%20IT/Piramidal/Servers/wso2ei-6.1.1/wso2/components/plugins/axiom_1.2.11.wso2v11.jar!/
[main] FATAL samples.util.SampleAxis2ServerManager - [SimpleAxisServer] Shutting down. Error starting SimpleAxisServer
org.apache.axis2.deployment.DeploymentException: javax/transaction/SystemException
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportSenders(AxisConfigBuilder.java:704)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:124)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:887)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
at samples.util.SampleAxis2ServerManager.start(SampleAxis2ServerManager.java:93)
at samples.util.SampleAxis2Server.startServer(SampleAxis2Server.java:61)
at samples.util.SampleAxis2Server.main(SampleAxis2Server.java:40)
Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportSenders(AxisConfigBuilder.java:688)
... 8 more
Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
Thank you everyone.
Enterprise Integrator 6.1.1 supported on JDK version 1.8.* 1 (Not supported on lower JDK versions).
The issue you observed is fixed 2 in the upcoming version.
The 2nd error happens because you are using a higher JDK during compile time and lower JDK during runtime.
Try both compiling and running on 1.7.

OpenJDK 8: can't resolve hostname

I'm trying to run slf4j with log4j 2.8 on openJDK 8 (latest version on Ubuntu 8u131-b11-0ubuntu1.17.04.1).
When running simple java class via maven openjdk is unable to resolve local hostname:
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: preferIPv6Address
at java.base/java.net.InetAddress.init(Native Method)
at java.base/java.net.InetAddress.init(Native Method)
at java.base/java.net.InetAddress.<clinit>(InetAddress.java:333)
at org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:53)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:539)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122)
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
looks like the method
public static InetAddress getLocalHost() throws UnknownHostException
is implemented differently than in Oracle java.
/etc/hosts contains ipv6 record:
::1 ip6-localhost ip6-loopback
The problem was caused by JDK9 installed on the system. Log4j 2.8 is not compatible with Java 9 yet.
Either removing JDK9 or setting preference to JDK8 should solve the issue. On Debian:
sudo update-alternatives --config java

Memcached and Tomcat 8 Session Manager Issue

We were using Memcached for session management in our web application with Tomcat 7 and it worked liked charm. In order for it work, I added following jars to Tomcat's lib folder
spymemcached-2.8.12.jar
couchbase-client-1.1.4.jar
memcached-session-manager-tc7-1.6.5.jar
memcached-session-manager-1.6.5.jar
And made following change to Tomcat's server.xml
<Context path="customersupport" docBase="customerSupportOrderCentral#v2" sessionCookieName="CUSTOMERSUPPORT-JSESSIONID">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:oc-cs-elasticcache.w8eptf.cfg.usw1.cache.amazonaws.com:11211"
sticky="false" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" />
</Context>
Now we are in process of upgrading our JDK to 1.8 and Tomcat version to 8. I have been researching online for it and it turned out since tomcat 8 doesn't support getSessionCookieName, I have to update memcache jar files for tomcat 8. so I added new set of jar files at tomcat's lib folder as below.
spymemcached-2.11.1.jar
memcached-session-manager-tc8-1.8.1.jar
memcached-session-manager-1.8.1.jar
couchbase-client-1.4.0.jar
And Kept server.xml same but now Tomcat is throwing following error while starting up.
06-Jan-2016 07:03:48.934 SEVERE [main] org.apache.tomcat.util.digester.Digester.startElement Begin event threw error
java.lang.NoClassDefFoundError: org/apache/catalina/Lifecycle
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1012)
at java.lang.ClassLoader.loadClass(ClassLoader.java:413)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:116)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1178)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1344)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)
at org.apache.catalina.startup.Catalina.load(Catalina.java:551)
at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
If I dont change server.xml to include memcache manager, its working fine but with memcache session manager its throwing above error. I can really use some help here to resolve this issue.
Thanks
I had the same issue and got stuck for 2 days. The issue on my end was I had the below memcache specific jars in tomcat/lib and in another project specific classpath - tomcat/{project}/conf. The issue got resolved when I removed these jars from tomcat/{project}/conf
spymemcached-2.11.1.jar
memcached-session-manager-tc8-1.8.1.jar
memcached-session-manager-1.8.1.jar

ClassNotFoundException while running Jetty 7.6 as a windows service

I went through the solution written by #crowne for the question:
Running Jetty 7 as Windows Service
The command I used to install service:
bin\JettyService //IS//JettyService --DisplayName="Jetty Service"
--Install=D:\Jetty-7.6\bin\JettyService.exe --LogPath=D:\Jetty-7.6\logs --LogLevel=Debug --StdOutput=auto --StdError=auto --StartMode=Java --StopMode=Java --Jvm=auto ++JvmOptions=-Djetty.home=D:\Jetty-7.6 ++JvmOptions=-DSTOP.PORT=8087 ++JvmOptions=-DSTOP.KEY=downB0y ++JvmOptions=-Djetty.logs=D:\Jetty-7.6\logs ++JvmOptions=-Dorg.eclipse.jetty.util.log.SOURCE=true ++JvmOptions=-XX:MaxPermSize=128M ++JvmOptions=-XX:+CMSClassUnloadingEnabled ++JvmOptions=-XX:+CMSPermGenSweepingEnabled --Classpath=D:\Jetty-7.6\start.jar --StartClass=org.eclipse.jetty.start.Main ++StartParams=OPTIONS=All ++StartParams=D:\Jetty-7.6\etc\jetty.xml ++StartParams=D:\Jetty-7.6\etc\jetty-deploy.xml ++StartParams=D:\Jetty-7.6\etc\jetty-webapps.xml ++StartParams=D:\Jetty-7.6\etc\jetty-contexts.xml ++StartParams=D:\Jetty-7.6\etc\jetty-testrealm.xml --StopClass=org.eclipse.jetty.start.Main ++StopParams=--stop
but I get this error when starting the jetty server:
2013-06-03 14:58:17 Commons Daemon procrun stderr initialized
java.lang.NoClassDefFoundError: org/eclipse/jetty/start/Main
Caused by: java.lang.ClassNotFoundException:
org.eclipse.jetty.start.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.eclipse.jetty.start.Main. Program
will exit.
Exception in thread "main"
I am using Windows 7, 32 bit and Jetty 7.6. Can someone please help me out.
It seems like the issue was with the prunsrv.exe provided with the commons daemon binaries. I then used the 64 bit .exe provided on a 64 bit windows system and it worked just fine. but why id did not work on 32 bit windows is still a mystery
It would appear that you have a classpath issue where the service running java execution does not know about the start.jar file. I would look into whatever options are available on that service dealio and figure out how to add something like
-cp d:\Jetty-7.6\start.jar
so it is on your classpath, from that point on the Jetty start.jar process should craft a reasonable classpath.

Starting of Tomcat failed in Netbeans 7

I am trying to run my application via Netbeans 7.0 on tomcat 7.0.11 (bundled with the Netbeans itself).
When I try to run the application I am getting the following error.
I have reinstalled everything many times but I am still getting same issues.
It runs properly first time and then if I stop the server and then try to start it again then it creates the problem. At times when I restart my PC it works and sometimes even restarting the PC does not work.
Below is the error stack from Netbeans 7.0
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
Checking data source definitions for missing JDBC drivers...
Starting Tomcat process...
Waiting for Tomcat...
Starting of Tomcat failed.
E:\workspaces\netbeansws\myApp\nbproject\build-impl.xml:770:
Deployment error:
Starting of Tomcat failed.
See the server log for details.
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:200)
at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)
BUILD FAILED (total time: 3 minutes 0 seconds)
Please help !
I'd recommend looking at the the Tomcat logs to find out what the specific error is.

Resources