英文:
Deploying a .war application on a tomcat server
问题
我正在尝试在我的Tomcat服务器上部署我的hello.war文件(Java应用程序)。
起初,我是通过Tomcat默认页面上的“Manager App”来进行部署的,然后在应用程序部分显示出来(以下用红圈标出)。
但是,当我尝试通过点击该链接(https://ip-address/hello)来连接时,它会显示标准的“HTTP状态404 - 未找到”,并显示描述:“源服务器未找到目标资源的当前表示,或者不愿意透露存在目标资源。”(下图)
我甚至尝试将我的hello.war文件手动放入服务器的适当文件夹位置(“/opt/tomcat/apache-tomcat-9.0.33/webapps”),并在.war文件上添加了其他人的读取、执行权限,将用户“tomcat”添加为文件的所有者,然后重新启动服务。
但是仍然没有任何帮助,我仍然得到404错误。
英文:
I am trying to deploy my hello.war file (Java application) on my tomcat server.
At first I do it from the "Manager App" on tomcat's default page, and it shows off afterwards in the Applications section. (Attached below circled in red)
But when I try to connect to it by clicking on that link (https://ip-address/hello) it gives me a standard "HTTP Status 404 – Not Found" with the description: "The origin server did not find a current representation for the target resource or is not willing to disclose that one exists." (picture below)
I even try putting my hello.war file manually in the server in the appropriate folder location ("/opt/tomcat/apache-tomcat-9.0.33/webapps") and add read, execute permissions to 'others' on the .war file, add user 'tomcat' as the owner of the file, restart the service.
But still nothing seems to help and I still get that 404
答案1
得分: 1
这意味着在应用程序中您没有默认的起始页面。在WebContent下创建index.html并刷新页面。为了测试,您可以在index.html中放置任何内容,例如:
<html>
	<head>
		<title>Hello world</title>
	</head>
	<body>
		欢迎访问我的应用程序
	</body>
</html>
查看此链接以获取更多信息。
[更新]
--- 根据OP的另一个请求(请查看评论)发布以下更新 ---
正如我在评论中提到的,您需要将请求转发到一个JSP(例如queryResults.jsp),您希望在其中显示查询结果。将以下代码放在您的servlet的doGet方法末尾:
String nextJSP = "/queryResults.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request, response);
此代码将自动将请求转发到queryResults.jsp,您可以在其中访问保存在请求/会话对象中的查询结果。
如有任何疑问/问题,请随意在评论中提问。
英文:
It means you do not have a default start page in the application. Create index.html under WebContent and refresh the page. For testing, you can put any content in index.html e.g.
<html>
	<head>
		<title>Hello world</title>
	</head>
	<body>
		Welcome to my application
	</body>
</html>
Check this to learn more about it.
[Update]
--- Posting the following update based on another request (check comments) from OP ---
As I have mentioned in the comment, you need to forward the request to a JSP (e.g. queryResults.jsp) where you want to show the query result. Put the following code at the end in the doGet method of your servlet:
String nextJSP = "/queryResults.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
This code will automatically forward the request to queryResults.jsp where you can access the query result saved in the request/session object.
Feel free to comment in case of any doubt/issue.
专注分享java语言的经验与见解,让所有开发者获益!



评论