apache - 使用 Tomcat 获取请求并创建 HTTP 响应

标签 apache tomcat webserver apache-commons-logging

我目前正尝试为我的应用程序使用嵌入式 Tomcat,并尝试对其进行设置以获取 http 请求的 URL。

一些背景:

我使用的代码与此处帖子的第一个答案相同:Howto embed Tomcat 6?

我所做的唯一改变是:

private String   catalinaHome = "/home/xyz/tomcat"; // This dir is created and has full access permissions

此外,我正在查看:http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/startup/Embedded.html

我找不到 server.xml 和 tomcat-users.xml,所以我创建了一个 tomcat-users.xml,因为我遇到了异常:内存数据库文件/home/xyz/tomcat/conf/tomcat-无法读取 users.xml。

tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

代码使用container.setRealm(new MemoryRealm()); 它从这里出现:http://tomcat.apache.org/tomcat-4.1-doc/catalina/funcspecs/fs-memory-realm.html我应该有一个 server.xml 文件,并且默认情况下应该已经创建了一个文件。

1] 我是否需要创建一个 server.xml,其中的默认值应该是什么? 我从这里放了一个默认文件:http://www.akadia.com/download/soug/tomcat/html/tomcat_server_xml.html ,但只想知道什么是正确的做法?

2]当我访问http://localhost:8089/mywebapp/index.html时,我得到的只是请求的资源 () 不可用,尽管我在代码中的“webappDir”处有一个 index.html 页面

3] 我对嵌入式 tomcat 的唯一需要是拦截,以便在我的代码中获取传递给 tomcat 的 URL。然后我可以解析 URL [做我的事情],然后创建一个 http 负载并发回一个 http 响应。

如果有任何指点,我将不胜感激,尤其是对于 3]?

谢谢!

最佳答案

好的,对于您的第一个问题,您不需要 server.xml。如果您检查初始帖子的代码,他们会在那里设置参数。这就是 server.xml 将封装的内容。实际上,Tomcat 将解析 server.xml 以获取您在 java 文件中定义的属性,您在其中实例化 catalina 调用以启动。但是因为它是嵌入式的,所以你要在你的类上设置所有这些参数。

对于您的第二个问题,请检查您的日志目录并查看正在解析的内容。您的服务启动后发生了一些事情,因为一旦您调用该端口,它应该已经重定向您。无论哪种方式,只需尝试http://localhost:8089看看你从 tomcat 得到了什么返回。它应该给你某种来自服务器本身的响应。 如果你像这样“http://localhost:8089/mywebapp/index.html”,你正在尝试访问一个创建的上下文,它可能配置不正确,但这只是现在的猜测。

先试试这个,然后告诉我你得到了什么。我们可以从这一点开始进行故障排除,看看我是否可以在这方面提供更多帮助。

关于apache - 使用 Tomcat 获取请求并创建 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656963/

相关文章:

apache - 不要在子域上应用重写引擎......?

apache - 可能是端口错误

java - BTM 作为 Tomcat 7 中的事务管理器?

jsp - Tomcat session 过期处理

web-applications - Mongrel2 与 NGINX+ZeroMQ?

java - Apache 和 Tomcat 服务器中的多个站点

php - UTF-8贯穿始终

Java (Tomcat) : how to configure a cookieless subdomain to serve static content

python - 如何使用 cgi python 脚本发送对 html 的响应

web - 使用反向代理访问网站