【问题标题】:Is it possible to run multiple web application on the same port in tomcat 7是否可以在tomcat 7的同一端口上运行多个Web应用程序
【发布时间】:2015-11-09 10:10:07
【问题描述】:

我们有两个使用 Spring 和 Hibernate 开发的 Web 应用程序。我们在 Tomcat 7 上部署了这两个应用程序。如果我们不访问这两个应用程序,有时这些应用程序运行良好。如果同时访问两个应用程序,有时会出现一些异常。

例如:java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser

我们第一个访问的应用程序可以正常工作,但第二个不能工作。

我们确信我们可以在服务器上运行n 数量的应用程序。

【问题讨论】:

  • 如果有多个 Web 应用,那么每个应用都有自己的上下文路径。在这种情况下,应该没有问题。所以你有webapp,在你的webapps中是ROOT.war,如果stackoverflow.war是其他webapp,那么context-path是domain-name/stackoverflow/remainingurl。
  • 我没有在 server.xml 或服务器中的任何 xml 文件中进行任何配置。我应该吗?
  • 我现在也遇到了这个异常。 HTTP 状态 500 - org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是 javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found 。 . .请帮忙
  • 这个错误与tomcat没有在同一个端口上运行无关。这是500,所以开发者编程服务器端webapp的错误。
  • 您有一个类路径问题,您的一个应用程序正在设置系统范围的属性javax.xml.parsers.SAXParserFactory,但这种依赖关系仅在您的一个应用程序的类路径上可用。每当您需要 xml 解析器时,请在您的 all 应用程序中明确设置此属性,或者只是将此依赖项放在 Tomcat 可以将其放入所有 Web 应用程序可用的类路径中的位置。

标签: java spring hibernate tomcat


【解决方案1】:

回答您的实际问题,

是否可以在tomcat 7 的同一个端口上运行多个Web 应用程序?

是的,是的。 Tomcat 可以在一个端口上运行多个 Web 应用程序。默认的 Tomcat 端口号是 8080。

java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser

其他原因导致此错误。

【讨论】:

  • 这个错误是因为我没有在构建路径中包含xml解析api。现在我包括在内。运行良好。谢谢。
【解决方案2】:

多个 web 应用程序在 tomcat 上运行,在同一个端口上将 除非并且直到彼此的上下文路径是 被覆盖。

从异常中可以清楚地看出,其中一个 Web 应用程序未正确配置为访问所需的 jar。您可以将所需的 jars 复制到 Tomcat/libs,例如在 Windows 上,路径是“C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\lib”。

$Tomcat/lib 目录中的 Jars 对所有已部署的 Web 应用程序都是可见的。参考:Difference between keeping jar files in WAR and Tomcat lib folder

请随时发表评论以获得更多帮助。

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 2017-03-06
    • 2018-04-04
    • 2015-11-07
    • 1970-01-01
    • 2011-05-20
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多