- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不敢相信我花了几天时间来解决这个问题,可能部分是因为我对Mac不那么熟悉。好的,只需发布我的解决方案日记即可。希望对其他人有帮助。
遇到的问题:
1,第一个问题是无法从Eclipse启动Tomcat,但是可以通过startup.sh启动(无法加载locahost:8080页面)
2.然后,经过一些尝试,即使startup.sh也无法正常工作。
3.解决了前两个问题后,可以加载locahost:8080页面,但无法加载应用程序。 404错误-即使war文件夹正确放置在webapps文件夹中,也显示未找到资源。当Tomcat引用Struts 2应用程序时,将发生某些ClassNotFoundException或MethodNotDefinedException。
每个问题的原因和解决方案。
Tomcat无法从Eclipse启动。
原因是Eclipse中Tomcat的设置未完成。 Eclipse中的Tomcat尚未指向配置文件夹。
解决方案:在“服务器”选项卡中双击Tomcat服务器,然后将出现一个配置窗口。在窗口中,选择Tomcat配置文件夹和部署目标文件夹。
startup.sh无法正常工作。
原因可能是重复的jar问题。我忘了我已经在/ Library / Java / Extensions中复制了整个Struts 2罐子,这些罐子本来是空的。
解决方案:清除该文件夹,然后startup.sh将起作用。
即使在Tomcat运行时也无法加载Web应用程序(已修复了前两个问题)
原因可能是项目中包含了多余的Struts jar。我用谷歌搜索找到了Struts 2所需的罐子,只包括了它们。
原始帖子:
我一直试图在Eclipse中运行Hello World Web应用程序,但是无法发布。
这是我所做的:
-在OS X 10.8上使用Macintosh。
-从Apache下载Tomcat 7,然后将该文件上拉到某个目录下。
-还可以使用“ export”命令创建某些环境变量,例如$ CATALINA_BASE和$ CATALINA_HOME。
-在Eclipse中,将新服务器创建为Tomcat 7,将其指向上面的未压缩Tomcat目录,然后将Web应用程序(无错误编译)项目添加到Tomcat中
-发布我的Web应用程序。
`
这是我所反对的。
当Eclipse中的服务器正在运行时,出现404错误,找不到资源。我检查了server.xml,添加了上下文引用。但是在Tomcat的webapps文件夹中,没有添加任何war文件。即使我输入locahost:8080,我仍然会收到404错误,而不是tomcat的“默认页面”。
--
但是,如果我使用startup.sh启动服务器,然后将war文件手动拖动到webapps文件夹下,则它可以正常工作。战争立即解压缩,我可以加载静态和动态页面。
ps。解决上述问题后,现在我会遇到更多问题。我的startup.sh现在不能再启动服务器。而且每次我运行它时,似乎都会擦除它所关注的环境变量的值。
----------------回应我的助手评论--------------------------------- -------
致Keerthi Ramanathan:catalina.out内容
Nov 27, 2013 10:26:50 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
Nov 27, 2013 10:26:50 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Nov 27, 2013 10:26:50 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 800 ms
Nov 27, 2013 10:26:50 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 27, 2013 10:26:50 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/docs
Nov 27, 2013 10:26:50 PM org.apache.tomcat.websocket.server.WsSci onStartup
INFO: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocketJARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available.
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/examples
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/host-manager
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/manager
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/ROOT
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1075 ms
java.lang.NoSuchMethodError: org.apache.juli.ClassLoaderLogManager.setUseShutdownHook(Z)V
at org.apache.catalina.startup.Catalina.start(Catalina.java:719)
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.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Nov 27, 2013 10:26:51 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
Exception in thread "Thread-2" java.lang.NoSuchMethodError: org.apache.juli.ClassLoaderLogManager.shutdown()V
at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:920)
SEVERE: Exception starting filter struts2
java.lang.NoClassDefFoundError: javax/servlet/Filter
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: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 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1617)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1120)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1678)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
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:680)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
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 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 35 more
Nov 28, 2013 12:09:20 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Nov 28, 2013 12:09:20 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/HellowWorldStruts2] startup failed due to previous errors
最佳答案
您可以尝试以下更改Eclipse处理Tomcat方式的方法。
在Eclipse中,转到“服务器”选项卡,然后双击您拥有的Tomcat实例。这会打开一个标签
在ab中,单击“服务器位置”部分以展开视图(如果已折叠)
选择第二个单选按钮,其上显示“使用Tomcat安装(控制Tomcat安装)”
通过单击“浏览”按钮,还将部署路径更改为tomcat安装中webapps目录的路径。就我而言,它设置为“ D:\ Apps \ apache-tomcat-7.0.47 \ webapps”
单击工具栏上的“保存”按钮,然后从“服务器”选项卡重新启动您的Tomcat实例。
您可以尝试查看tomcat页面。
让我知道事情的后续。
关于java - Tomcat在Eclipse中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20235909/
我希望在某些环境中使用用户名和密码保护某个角色,但在其他环境中甚至不需要提示。如果我在 tomcat web.xml 中有一个 auth-constraint,我可以创建一个具有“匿名”访问权限的角色
我正在使用 Tomcat jmxproxy 和状态来监视 Web 应用程序,但是 jmxproxy 页面中有很多无用的信息,并且其中没有任何信息,例如事件连接数。有谁知道如何过滤 jmxproxy 页
是否可以通过执行 JSP 来重启 Tomcat6? 这是因为我想通过使用网络服务器远程部署应用程序的更改。 部署脚本是用 bash 编写的,它从 svn 中 check out 最新版本,然后将其打包
我有一个包含 2 个子项目(后端和 ui)的 gradle 项目。 Ui由gradle tomcatRunWar完美启动.后端有我们在生产地点的配置描述符/conf/Catalina/localhos
发现 XAMPP 控件认为 tomcat 正在运行但无法停止它的问题。 在catalina下的tomcat logs目录下可以找到如下错误 “严重:无法联系 localhost:8005。Tomcat
PuppetLabs 在 PuppetForge 上有一个模块,用于部署 Tomcat 及其配置。 https://forge.puppet.com/puppetlabs/tomcat Tomcat
我有一个部署到 Tomcat 实例中的 Web 应用程序。我希望能够将 tomcat 配置为在 Tomcat 本身启动时不自动启动该应用程序。但是,我确实希望启动 Tomcat 管理器,以便我可以根据
操作系统:windows XP。 我已经安装了 Tomcat 7.0.25,文件夹“manager”位于 webapps 文件夹中。 我已阅读此处的文档:http://tomcat.apache.or
我们在 server.xml 文件中启用了以下访问日志模式 pattern="%h %H %l %u %t "%r" %s %b location: %{location}o"。 有人可以帮助理解模式
我最近开始使用 tomcat,我有一个关于 Tomcat 请求路由/映射的查询。 假设我在 tomcat 服务器中部署了四个应用程序 A、B、C 和 D,当有请求到来时,tomcat 如何知道要调用哪
我在我的计算机上使用 Tomcat,它可以通过端口 8080 访问。我想要的是我应该能够使用我的计算机的 IP 地址访问我的 Tomcat 服务器页面。我以前读过很多主题,但找不到一个可以帮助我的主题
我有一个 tomcat 7 服务器和一个 postgreSQL 9.0 数据库。我用它来为地理网络元数据编辑器设置开发环境。一切都是根据 geonetwork 网站教程设置的。我在将服务器与数据库连接
我的服务器有 物理 ip 和 虚拟 ip 由网络管理员设置。在我安装的服务器内部 Apache tomcat 7.0.29并创建一个网络应用程序。当我运行 wget http://:8080/xxx或
我有多个应用程序在不同的端口上运行(tomcat 实例) 都有相同的CATALINA_HOME 目前我必须在所有实例中部署和安装psi 探针,并在不同的窗口中分别监控每个端口。 我如何在一个单一的探测
based on this question 我尝试将 Tomcat 控制台输出重定向到一个文本文件,它对我的 Web 应用程序工作正常,但问题是,每次 Tomcat 启动时它都会被覆盖。我需要创
我需要阐明我的问题。问题是:有什么方法可以影响 Tomcat 为特定部署的应用程序分配多少堆内存?更多详细信息 - 我如何为已部署的应用程序设置特定的 Java 选项(考虑我想为每个应用程序设置特殊的
应用服务器内部的类加载机制是开发人员常见的困惑来源;这就是为什么我想问一个关于 tomcat 7 服务器中这个机制的问题:我有一个网络应用程序 sample.war,它依赖于 jgroups 库, 放
尝试将嵌入式 Tomcat 5 迁移到嵌入式 Tomcat 7。在启动过程中获取 NPE。 我扩展了 Embedded 类并按照正确的顺序执行所有建议的初始化。 NPE 发生在这里: Caused b
我可以使用随附的 start.sh 文件启动 tomcat,但是是否有任何参数可以用来执行以下操作: 在指定的根目录启动 Tomcat 服务 强制 Tomcat 在浏览器中拉出指定的主页 谢谢 最佳答
我在两台 diff 机器 tomcat 服务器上做一个简单的集群配置。每次我启动 tomcat 时,我都会收到一个错误,就像集群组中没有事件成员一样。我正在附加集群配置
我是一名优秀的程序员,十分优秀!