0

我目前正在尝试为我的应用程序使用嵌入式 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] ?

谢谢!

4

2 回答 2

3

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

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

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

于 2011-04-14T05:28:46.373 回答
0

快速提问,你安装的是windows还是linux?如果是 linux,配置文件通常位于 /etc/tomcat6。(至少在 ubuntu 上它们是)。回复您已安装的版本。我也许可以帮助你。我想我也应该在这里详细说明一下。Tomcat 也是 linux 中的服务,因此在 ubuntu 中您必须启动 tomcat 才能访问它。

$: sudo service tomcat6 start

然后它在您的本地主机的端口 8080(通常如果未更改)上启动 tomcat。因此,您键入 localhost:8080 以访问该网站以配置 tomcat,它会为您提供 It works 提示。如果您有更多问题,请告诉我,我会尽我所能回答

于 2011-04-14T04:08:39.220 回答