gpt4 book ai didi

java - Tomcat 8 是否正在读取我的 Java Rest API( war )中的 web.xml 和 context.xml 文件?

转载 作者:行者123 更新时间:2023-11-28 22:48:11 25 4
gpt4 key购买 nike

我在 Eclipse 中创建了一个 Java Rest API(动态 Web)项目(包括 Javax 和 Jersey 库)并将其部署到我的 Tomcat 8 服务器。

当我通过 HTTP(例如 http://www.mydomain.co.uk:8080/MyJavaProject/context_string/path_params)调用它时,它会返回一个基本的 JSON 响应,但是当我启用 SSL 时/TLS 在服务器上,使用真正的证书,它在 Postman 中给出 404 Not Found

error.log 显示 /path/MyJavaProject/context_string/path_params 上的 file does not exist 错误,但文件不存在存在,因为它是我的 REST API 中的引用参数,所以我认为 Tomcat 不知道使用 WAR 文件。

如果我调用 https://www.mydomain.co.uk/MyJavaProject,我可以进入目录结构导航器。

我的日志一切正常,现在没有显示任何错误。我已将安全值放入应用程序的 WEB-INF 中的 web.xml 中。 WAR 及其展开的文件夹的权限均为 777

我读到过这个区域使用了一个名为 context.xml 的东西,但如果设置了 autoDeploy-true(我的是),则可能会或可能不会使用。

我的问题是:如何确定 Tomcat 是否真的在我的应用程序中读取 context.xmlweb.xml?这是我尝试解决 404 错误的最后想法。

这是我的应用程序的 web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MyProject</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>
com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>MyProject</web-resource-name>
<url-pattern>/context_string/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>

这是我的应用程序的 context.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="" path="" reloadable="true">
</Context>

最佳答案

您需要在 apache2 或 nginx 中使用反向代理,无论您使用什么在内部将请求重定向到 tomcat。

https 在服务器上默认使用 443 端口。因此,您需要使用 https 定义一个新端口或重定向相同的端口。阅读thisthis在 apache2 中改变。

这更像是评论,但我无法添加评论。

关于java - Tomcat 8 是否正在读取我的 Java Rest API( war )中的 web.xml 和 context.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com